正则表达式 初解


1. 元字符及其在正则表达式上下文中的行为:

/ 将下一个字符标记为一个特殊字符、或一个原义字符、或一个后向引用、或一个八进制转义符。

^ 匹配输入字符串的开始位置。如果设置了 RegExp 对象的Multiline 属性,^ 也匹配 ’/n’ 或 ’/r’ 之后的位置。

$ 匹配输入字符串的结束位置。如果设置了 RegExp 对象的Multiline 属性,$ 也匹配 ’/n’ 或 ’/r’ 之前的位置。

* 匹配前面的子表达式零次或多次。

+ 匹配前面的子表达式一次或多次。+ 等价于 {1,}。

? 匹配前面的子表达式零次或一次。? 等价于 {0,1}。

{n} n 是一个非负整数,匹配确定的n 次。

{n,} n 是一个非负整数,至少匹配n 次。

{n,m} m 和 n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。在逗号和两个数之间不能有空格。

? 当该字符紧跟在任何一个其他限制符 (*, +, ?, {n}, {n,}, {n,m}) 后面时,匹配模式是非贪婪的。非贪婪模式尽可能少的匹配所搜索的字符串,而默认的贪婪模式则尽可能多的匹配所搜索的字符串。

. 匹配除 "/n" 之外的任何单个字符。要匹配包括 ’/n’ 在内的任何字符,请使用象 ’[./n]’ 的模式。
(pattern) 匹配pattern 并获取这一匹配。

(?:pattern) 匹配pattern 但不获取匹配结果,也就是说这是一个非获取匹配,不进行存储供以后使用。

(?=pattern) 正向预查,在任何匹配 pattern 的字符串开始处匹配查找字符串。这是一个非获取匹配,也就是说,该匹配不需要获取供以后使用。

(?!pattern) 负向预查,与(?=pattern)作用相反

x|y 匹配 x 或 y。

[xyz] 字符集合。

[^xyz] 负值字符集合。

[a-z] 字符范围,匹配指定范围内的任意字符。

[^a-z] 负值字符范围,匹配任何不在指定范围内的任意字符。

/b 匹配一个单词边界,也就是指单词和空格间的位置。

/B 匹配非单词边界。

/cx 匹配由x指明的控制字符。

/d 匹配一个数字字符。等价于 [0-9]。

/D 匹配一个非数字字符。等价于 [^0-9]。

/f 匹配一个换页符。等价于 /x0c 和 /cL。

/n 匹配一个换行符。等价于 /x0a 和 /cJ。

/r 匹配一个回车符。等价于 /x0d 和 /cM。

/s 匹配任何空白字符,包括空格、制表符、换页符等等。等价于[ /f/n/r/t/v]。

/S 匹配任何非空白字符。等价于 [^ /f/n/r/t/v]。

/t 匹配一个制表符。等价于 /x09 和 /cI。

/v 匹配一个垂直制表符。等价于 /x0b 和 /cK。

/w 匹配包括下划线的任何单词字符。等价于’[A-Za-z0-9_]’。

/W 匹配任何非单词字符。等价于 ’[^A-Za-z0-9_]’。

/xn 匹配 n,其中 n 为十六进制转义值。十六进制转义值必须为确定的两个数字长。

/num 匹配 num,其中num是一个正整数。对所获取的匹配的引用。

/n 标识一个八进制转义值或一个后向引用。如果 /n 之前至少 n 个获取的子表达式,则 n 为后向引用。否则,如果 n 为八进制数字 (0-7),则 n 为一个八进制转义值。

/nm 标识一个八进制转义值或一个后向引用。如果 /nm 之前至少有is preceded by at least nm 个获取得子表达式,则 nm 为后向引用。如果 /nm 之前至少有 n 个获取,则 n 为一个后跟文字 m 的后向引用。如果前面的条件都不满足,若 n 和 m 均为八进制数字 (0-7),则 /nm 将匹配八进制转义值 nm。

/nml 如果 n 为八进制数字 (0-3),且 m 和 l 均为八进制数字 (0-7),则匹配八进制转义值 nml。

/un 匹配 n,其中 n 是一个用四个十六进制数字表示的Unicode字符。



1. 捕获组:标志() 若设置了ExplicitCapture选项,则捕获失效  
 <([a-zA-Z]/d?)>[^<]*
要匹配的文本 ,表达示中的1表示第一个组,即()中的部分

some Text

some heading


匹配结果:
-------Next Match------

some Text


-------Next Match------

some heading



若设置ExplicitCapture
则会报错:
Error:
正在分析“<([a-zA-Z]/d?)>[^<]*”- 对未定义的组成员 1 的引用。

2. 非捕获(?:)
(?:/d[A-Z])/w
要匹配的字符串: 1A BB SA 1 C
匹配结果:
-------Next Match------
1A
-------Next Match------
BB
-------Next Match------
SA

3.通过名称捕获:(?) 无论是否设定了选项ExplicitCapture,组都将被捕获。

要匹配的字符串:Characters in Seinfeld include Jerry Seinfeld, Elaine Benes, Cosmo Kramer and George Costanza
正则表达示:/b[A-Z][a-z]+ (?[A-Z][a-z]+)/b
匹配结果:
-------Next Match------
Jerry Seinfeld
-------Next Match------
Elaine Benes
-------Next Match------
Cosmo Kramer
-------Next Match------
George Costanza


同时也可以根据 ‘姓’访问捕获的组的值
match.Groups["lastName"].Value=Seinfeld

4. 简单捕获
正则表达示:(/d/d)/s([A-Z][A-Z])
匹配字符串:12 AB 34 CD 56 EF
匹配结果:
-------Next Match------
12 AB
-------Next Match------
34 CD
-------Next Match------
56 EF

每一次的匹配结果有两个组对象 
也可以将正则表达式改为
(?/d/d)/s(?[A-Z][A-Z])

5. 替换:
可以用以下字符来替换文本中的指定的组
 字符            用途
$groupNumber 用groupNumber指定的组作替换
${name}      替换由组(?)匹配的最后一个子串
$$           替换字符$
$&           替换所有的匹配
$+           替换最后捕获的组
$            替换整个的输入字符串
例如:
要匹配的文本为:The defendants, who can't be name for legal reasons, were Dr Helen, Ms July.
正则表达式:(?Mr|Mrs|miss|Ms|Dr) [A-Z][a-z]*<br> 替换字符串为:${title} x 或$1 x 或$+ x <br> 结果为:The defendants, who can't be name for legal reasons, were Dr x, Ms x.<br><br> 若替换字符串为:$&<br> 结果字符串不变。<br><br> 若替换字符串为:$$ 或<br> 结果为:The defendants, who can't be name for legal reasons, were $, $.<br><br> 若替换字符串为:(?<title>Mr|Mrs|miss|Ms|Dr) (?<name>[A-Z][a-z]*)<br> 则结果为:The defendants, who can't be name for legal reasons, were Helen, July.<br><br> 6. 反向引用:<br> 匹配上一个组的语法是/groupNumber 或/k<groupName><br> 因为有符号 / ,所以在字符串前要加转义字符/.<br><br> 例如:查找两个单词连续出现的情况:<br> (?<name>/b[a-zA-Z]+/b)/s/k<name>或(?<name>/b[a-zA-Z]+/b)/s/1<br> 用/k<name> 或 /1 来代替(?<name>/b[a-zA-Z]+/b)<br> 要匹配的文本: in the second quarter quarter , the the stock.<br> 要替换的文本:$1或${name}<br> 结果:in the second quarter , the stock.<br><br> 7. 正声明:(?=)<br> (?=)规定了括号中的模式必须出现在声明的右侧。模式将不构成最后匹配的一部分。<br> 要匹配的文本:java, C#.net, VB.net, jscript.net<br> 正则表达式:/S+(?=/.net)<br> 匹配结果:<br> -------Next Match------<br> C#<br> -------Next Match------<br> VB<br> -------Next Match------<br> jscript<br><br> 即匹配的是‘空格’和‘.net’中间的字符<br><br> 8. 负声明:(?!)<br> (?!)规定了模式不能紧邻声明的右侧。模式不构成最终匹配的一部分。<br> 考虑如下的匹配字符串:123A 456c 789 111C<br> 正则表达式:/d{3}(?![A-Z])<br> 匹配结果:<br> 456<br> 789<br> 即匹配的是符合左边的字符串,但不紧邻负声明中的字符串的结果。<br><br> 9. 反向正声明:(?<=)<br> (?<=)规定了括号中的模式必须 出现 在声明的左侧。模式不构成最终匹配的一部分。<br><br> 考虑如下输入字符串:New Mexico, West Virginia Washington, New England.<br> 正则表达式:(?<=New )([A-Z][a-z]+)<br> 匹配结果: <br> Mesico<br> England<br> 即匹配的结果是符合反向正声明的右边规则的字符串<br><br> 10. 反向负声明:(?<!)<br> (?<!) 规定了模式不能坚信声明的左侧。模式仍然不构成最终匹配的一部分。<br> 考虑如下的输入字符串:<br> 123A 456F 789C 111A<br> 正则表达式:(?<!1)/d{2}[A-Z]<br> 匹配结果:<br> 56F<br> 89C<br><br> 即匹配的结果是符合反向正声明的右边的规则的字符串,但不能紧邻声明。<br><br> 11. 非回溯:(?>)<br> (?>)防止了Regex引擎在失败时回溯(backtracking)以试图匹配,它称为贪婪的子表达式。假设要匹配所有的以“ing”结尾的单词。输入字符串如下:<br> He was very trusting. <br> 要得到完整的文本,可以使用如下的正则表达式:<br> .*ing<br> 但是,如果不进行回溯,将无法实现匹配:<br> (?>*)ing<br><br> 12. 比较高级组:<br> 要匹配的字符:A1 B 2 C D3 E4<br> 正则表达式 (正声明)[A-Z](?=/d)<br> 匹配结果:<br> A<br> D<br> E<br> 正则表达式 (负声明)  [A-Z](?!/d)<br> 匹配结果:<br> B<br> C<br> 正则表达式 (反向正声明) (?<=[A-Z])/d<br> 匹配结果为:<br> 1<br> 3<br> 4<br> 正则表达式 (反向负声明)(?=![A-Z])/d<br> 匹配结果为:<br> 2<br> 正则表达式 (回溯) www/.(.*)/.com<br> 要匹配的文本:http://www.wrox.com<br> 第一次匹配结果:www/.  + wrox.com + 失败<br> 第二次匹配结果 www/.   + wrox.co  m 失败<br> 第二次匹配结果 www/.   + wrox.c  om 失败<br> 第二次匹配结果 www/.   + wrox.   com 失败<br> 第二次匹配结果 www/.   + wrox   .com 成功<br> 这样匹配的效率转低:<br> 修改正则表达式为(非回溯)类型:www/.(?>[^/.]*)/.com<br> 这样只需匹配一次。<br><br> 13. 在正则表达式中作决策<br><br> 决策指令 (?(expression)yes|no)<br> 若expression得到匹配,则从开始匹配yes表达式 否则匹配no表达式。<br> 但expression并不包含在匹配的结果中<br><br> 例如:<br> 要匹配的文本:1A CB 3A 5C 3B<br> 正则表达式:(?(/d)A|B)<br> 匹配结果:<br> -------Next Match------<br> B<br> -------Next Match------<br> B<br><br><br><br> 要匹配的文本:1A CB 3A 5C 3B<br> 正则表达式:(?(/d)/dA|[A-Z]B)<br> 匹配结果:<br> -------Next Match------<br> 1A<br> -------Next Match------<br> CB<br> -------Next Match------<br> 3A<br><br> 要匹配的文本:77-77A 69-AA 57-B<br> 正则表达式:(?(/d)/wA|B)<br> 匹配结果:<br> -------Next Match------<br> 7A<br> -------Next Match------<br> B<br><br> 也可以使用以下语法:(?(name)yes|no)<br> name指的是前面的捕获组的名称或编号 <br> 例如:<br> 要匹配的文本:77-77A 69-AA 57-B<br> 正则表达式:(/d7)?-(?(1)/d/d[A-Z]|[A-Z][A-Z])<br> 其中的(1)表示前面的第一个匹配组(/d7)<br><br> 匹配结果:<br> -------Next Match------<br> 77-77A<br> -------Next Match------<br> -AA<br><br> 也可以用前面的匹配组的名称来替换:<br> 例如:<br>  <br> 正则表达式:(?<name>/d7)?-(?(name)/d/d[A-Z]|[A-Z][A-Z])<br> 其中的(1)表示前面的第一个匹配组(/d7)<br><br> 匹配结果:<br> -------Next Match------<br> 77-77A<br> -------Next Match------<br> -AA<br><br> 14. 在正则表达式内设定选项<br> 例如:(?1:[a-z])<br> 现在无论创建什么正则表达式时全局选项是什么,[a-z]都将匹配大写字母A-Z.如果想删除一个选项,只需要使用符号“-”。例如:使用下面的表达式使匹配区分大小写:(?-i:[a-z])<br><br> 下表为内联的5个选项:<br> 正则表达式选项          标志   描述<br> ExplicitCapture         N      此选项规定,只有显式命名或编号的组才是有效的捕获<br> IgnoreCase              I      此选项规定不区分大小写的匹配<br> IgnorePatternWhitespace X      此选项规定,非转义的空字符被排除在模式之外,并启用了前缀一个#的注释<br> MultiLine               M      指定多行模式,修改了字符和^的$含义<br> SingleLine              S      此选项规定,只有显式命名或编号的组才是有效的捕获。<br><br> 可以一次设定任意多的选项,例如:<br> (?n-i:[a-z]) 这样就把组设为ExplicitCapture选项并区分大小写。<br><br><br> 15. 正则表达式规则:<br> 规则1. 正则表达式引擎会对输入字符串尽快地开始匹配。它一次搜索一个字符,直到发现一次匹配。<br> 例如:<br> 要匹配的字符串:123 ABC 456 DEF<br> Regex=[A-Z]*<br> 本例从ABC开始匹配。<br><br> 规则2. 发现一个匹配的开头后,正则表达式引擎将继续匹配,直到一个遇到一个不被模式接收的字符。<br> 要匹配的字符串:123 ABC 456 DEF<br> Regex=[A-Z]*<br> 本例第一次匹配从ABC,开始,当遇到模式不接受的空格时结束。<br><br> 规则3. Regex 引擎非常贪婪----只要模式允许,它将匹配尽可能多的字符。<br> 要匹配的字符串:'Dr walson's watch'<br> Regex='.*'<br> 它的匹配是整个字符串。表达式模式匹配一个单引号,后跟任意字符,然后以另一个单引号结束。所以'Dr Walson'是匹配的,引擎不需要继续匹配其他的字符,它已经有匹配的模式了。但是,正则表达式引擎继续匹配(见规则2----匹配一直进行到出现一个无效字符),并发现还能匹配: s watch'<br><br> 添加一个“?”,使*成为一个非贪婪的限定符:<br> Regex='.*?'<br> 这时正则表达式将只匹配:'Dr walson'<br><br> 规则4: Regex引擎渴望实现匹配,所以将在需要时回溯以实现匹配。<br> 要匹配的文本为:'Hello world' said K & R.<br> Regex='.*'<br> 匹配结果为:'Hello world'<br> 但是,如果没有回溯操作将无法得到匹配。规则3 说明表达式引擎在寻找安能实现的最大匹配。 .* 表示匹配一个字符0次或多次。所以虽然第一次的'Hello world'已经足够完成匹配。但Regex引擎想实现更多的匹配,并在规则2不适用时继续搜索,直到字符串的末端。结果第一次无法匹配成功。<br> 所以在这里渴望实现匹配的引擎回溯一个字符,直到回溯到world后的“'”,从而完成匹配。使用一个非回溯组禁用回溯操作,会发生下列情况:<br> 要匹配的文本为:'Hello world' said K & R.<br> Regex='(?>.*)'<br> 因为.*匹配了右侧直到结束的所有字符,而且规定了不使用回溯,所以引擎无法根据'Hello world' 实现匹配。<br><br> 规则5: Regex引擎总是选择第一个选项<br><br> 当使用字符“|”指定不能选择时,正则表达式引擎将试图匹配第一个选项,如果无法匹配,再匹配第二个,然后第三个等等。<br> 要匹配的文本为:1234 123 3456<br> Regex=(/d{2}|/d{3}|/d{4})<br><br> 16 . 常用验证字符<br><br> 1> 不包含字母或空格  <br> [^a-zA-Z ]<br><br> 2> 不包含字母或数字或空格<br> [^a-zA-Z//d]<br><br> 3>. 只包含数字<br> [^//d.]<br> 通常.是一个特殊的正则表达式字符,它可以匹配任何字符,如果要匹配一个真正的“.”,需要将它转义为“/.”。不过,当用方括号来指定匹配的字符时,这就不必要了。<br><br> 4>. 整数<br> ((/+|-)/d)?/d*  或(/+|-)?/d+<br><br> 5>. 浮点数<br> ^(/+|-)?/d+(/./d+)?$<br> 浮点数也包括整数。所以“.”后面的数据可有可无。<br><br> 6>.国内邮政编码:即6位数字 且第一位数不为0  ^[1-9]/d{5}$<br><br> 7>.国内固电号码 即3至4位区号+“-”或者空格+7至8位本地号码,<br> 或者区号加上“()”后直接加本地号码。<br>   ^(/(/d{3,4}/)|/d{3,4}(-|/s))/d{7,8}$<br> 8> 身份证号 是15位或17位后加一数据或“x”;<br> 9> HTML标签<br> (<[a-zA-Z]+[^>]*>|</[a-zA-Z]+/d*>)<br><br> "^/d+$"  //非负整数(正整数 + 0) <br> "^[0-9]*[1-9][0-9]*$"  //正整数 <br> "^((-/d+)|(0+))$"  //非正整数(负整数 + 0) <br> "^-[0-9]*[1-9][0-9]*$"  //负整数 <br> "^-?/d+$"    //整数 <br> "^/d+(/./d+)?$"  //非负浮点数(正浮点数 + 0) <br> "^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$"  //正浮点数 <br> "^((-/d+(/./d+)?)|(0+(/.0+)?))$"  //非正浮点数(负浮点数 + 0) <br> "^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$"  //负浮点数 <br> "^(-?/d+)(/./d+)?$"  //浮点数 <br> "^[A-Za-z]+$"  //由26个英文字母组成的字符串 <br> "^[A-Z]+$"  //由26个英文字母的大写组成的字符串 <br> "^[a-z]+$"  //由26个英文字母的小写组成的字符串 <br> "^[A-Za-z0-9]+$"  //由数字和26个英文字母组成的字符串 <br> "^/w+$"  //由数字、26个英文字母或者下划线组成的字符串 <br> 匹配中文字符的正则表达式: [/u4e00-/u9fa5]<br> 匹配双字节字符(包括汉字在内):[^/x00-/xff]<br><br>  </p> </div> </div> </div> </div> </div> <!--PC和WAP自适应版--> <div id="SOHUCS" sid="1306284681251033088"></div> <script type="text/javascript" src="/views/front/js/chanyan.js"></script> <!-- 文章页-底部 动态广告位 --> <div class="youdao-fixed-ad" id="detail_ad_bottom"></div> </div> <div class="col-md-3"> <div class="row" id="ad"> <!-- 文章页-右侧1 动态广告位 --> <div id="right-1" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_1"> </div> </div> <!-- 文章页-右侧2 动态广告位 --> <div id="right-2" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_2"></div> </div> <!-- 文章页-右侧3 动态广告位 --> <div id="right-3" class="col-lg-12 col-md-12 col-sm-4 col-xs-4 ad"> <div class="youdao-fixed-ad" id="detail_ad_3"></div> </div> </div> </div> </div> </div> </div> <div class="container"> <h4 class="pt20 mb15 mt0 border-top">你可能感兴趣的:(C#)</h4> <div id="paradigm-article-related"> <div class="recommend-post mb30"> <ul class="widget-links"> <li><a href="/article/1835506236842405888.htm" title="C#中使用split分割字符串" target="_blank">C#中使用split分割字符串</a> <span class="text-muted">互联网打工人no1</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>1、用字符串分隔:usingSystem.Text.RegularExpressions;stringstr="aaajsbbbjsccc";string[]sArray=Regex.Split(str,"js",RegexOptions.IgnoreCase);foreach(stringiinsArray)Response.Write(i.ToString()+"");输出结果:aaabbbc</div> </li> <li><a href="/article/1835471059135066112.htm" title="你可能遗漏的一些C#/.NET/.NET Core知识点" target="_blank">你可能遗漏的一些C#/.NET/.NET Core知识点</a> <span class="text-muted">追逐时光者</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/.NET/1.htm">.NET</a><a class="tag" taget="_blank" href="/search/DotNetGuide%E7%BC%96%E7%A8%8B%E6%8C%87%E5%8D%97/1.htm">DotNetGuide编程指南</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/.netcore/1.htm">.netcore</a><a class="tag" taget="_blank" href="/search/microsoft/1.htm">microsoft</a> <div>前言在这个快速发展的技术世界中,时常会有一些重要的知识点、信息或细节被忽略或遗漏。《C#/.NET/.NETCore拾遗补漏》专栏我们将探讨一些可能被忽略或遗漏的重要知识点、信息或细节,以帮助大家更全面地了解这些技术栈的特性和发展方向。拾遗补漏GitHub开源地址https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/D</div> </li> <li><a href="/article/1835352556197474304.htm" title="C#动态加载DLL程序集及使用反射创建实例-简记" target="_blank">C#动态加载DLL程序集及使用反射创建实例-简记</a> <span class="text-muted">不全</span> <a class="tag" taget="_blank" href="/search/C%23%E7%9B%B8%E5%85%B3/1.htm">C#相关</a><a class="tag" taget="_blank" href="/search/Asp.net/1.htm">Asp.net</a><a class="tag" taget="_blank" href="/search/WebForm/1.htm">WebForm</a><a class="tag" taget="_blank" href="/search/Asp.net/1.htm">Asp.net</a><a class="tag" taget="_blank" href="/search/MVC/1.htm">MVC</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/Assembly/1.htm">Assembly</a><a class="tag" taget="_blank" href="/search/%E5%8F%8D%E5%B0%84/1.htm">反射</a><a class="tag" taget="_blank" href="/search/%E7%A8%8B%E5%BA%8F%E9%9B%86/1.htm">程序集</a> <div>Assembly动态加载程序集:分两种情况:1、需要加载的程序集已经在程序中被引用了,则直接从当前程序域中查找即可:Assemblyassembly=AppDomain.CurrentDomain.GetAssemblies().FirstOrDefault(x=>x.GetName().Name.Contains("theAssemblyName"));2、需要加载的程序集未被加载,则使用程序集</div> </li> <li><a href="/article/1835349150519095296.htm" title="开发游戏的学习规划" target="_blank">开发游戏的学习规划</a> <span class="text-muted">杰克逊的日记</span> <a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F/1.htm">游戏</a><a class="tag" taget="_blank" href="/search/%E5%AD%A6%E4%B9%A0/1.htm">学习</a> <div>第一阶段:●C#语言快速系统地学习一遍(基础的语法、面向对象、基础的数据结构、基础的设计模式)●Unity的2D和3D部分及UI、动画、物理系统●阶段性测验:需要去用前面所学的这些基础知识来完成一个简单的2d或者3d的案例,将通过一个自制的《Flappybird》游戏案例讲解游戏开发的思想及方法,并将《Flappybird》这个游戏进一步改造成一个横版射击类游戏《Crazybird》以巩固并且升华</div> </li> <li><a href="/article/1835347637017079808.htm" title="python可以制作大型游戏_python能做游戏吗-python能开发游戏吗" target="_blank">python可以制作大型游戏_python能做游戏吗-python能开发游戏吗</a> <span class="text-muted">靖dede</span> <a class="tag" taget="_blank" href="/search/python%E5%8F%AF%E4%BB%A5%E5%88%B6%E4%BD%9C%E5%A4%A7%E5%9E%8B%E6%B8%B8%E6%88%8F/1.htm">python可以制作大型游戏</a> <div>python可以写游戏,但不适合。下面我们来分析一下具体原因。用锤子能造汽车吗?谁也没法说不能吧?历史上也确实曾经有些汽车,是用锤子造出来的。但一般来说,还是用工业机器人更合适对吗?比较大型的,使用Python的游戏有两个,一个是《EVE》,还有一个是《文明》。但这仅仅是个例,没有广泛意义。一般来说,用来做游戏的语言,有两种。一是C++。。一是C#。。Python理论上,不仅不适合做游戏,而是只要</div> </li> <li><a href="/article/1835305216686256128.htm" title="【C#生态园】深度剖析:C#嵌入式开发工具大揭秘" target="_blank">【C#生态园】深度剖析:C#嵌入式开发工具大揭秘</a> <span class="text-muted">friklogff</span> <a class="tag" taget="_blank" href="/search/C%23%E7%94%9F%E6%80%81%E5%9B%AD/1.htm">C#生态园</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>C#嵌入式开发:全面了解六大框架与库前言随着物联网和嵌入式系统的快速发展,越来越多的开发者开始关注使用C#语言进行嵌入式开发。本文将介绍几种用于C#的嵌入式开发框架和相关库,以及它们的核心功能、安装配置方法和API概览,帮助读者了解并选择适合自己项目的工具和资源。欢迎订阅专栏:C#生态园文章目录C#嵌入式开发:全面了解六大框架与库前言1.nanoFramework:一个用于C#的嵌入式开发框架1.</div> </li> <li><a href="/article/1835303453203722240.htm" title="Lua 与 C#交互" target="_blank">Lua 与 C#交互</a> <span class="text-muted">z2014z</span> <a class="tag" taget="_blank" href="/search/lua/1.htm">lua</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>Lua与C#交互前提Lua是一种嵌入式脚本语言,Lua的解释器是用C编写的,因此可以方便的与C/C++进行相互调用。轻量级Lua语言的官方版本只包括一个精简的核心和最基本的库,这使得Lua体积小、启动速度快,也适合嵌入在别的程序里。交互过程C#调用Lua:由C#文件调用Lua解析器底层dll库(由C语言编写),再由dll文件执行相应的Lua文件。Lua调用C#:1、Wrap方式:首先生成C#源文件</div> </li> <li><a href="/article/1835295766747377664.htm" title="C# 开发教程-入门基础" target="_blank">C# 开发教程-入门基础</a> <span class="text-muted">天马3798</span> <a class="tag" taget="_blank" href="/search/%E6%95%99%E7%A8%8B%E7%B3%BB%E5%88%97%E6%95%B4%E7%90%86/1.htm">教程系列整理</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1.C#简介、环境,程序结构2.C#基本语法,变量,控制局域,数据类型,类型转换3.C#数组、循环,Linq4.C#类,封装,方法5.C#枚举、字符串6.C#面相对象,继承,封装,多态7.C#特性、属性、反射、索引器8.C#委托,事件,集合,泛型9.C#匿名方法10.C#多线程更多:JQuery开发教程入门基础Vue开发基础入门教程Vue开发高级学习教程</div> </li> <li><a href="/article/1835288207923703808.htm" title="C# 禁止程序重复启动" target="_blank">C# 禁止程序重复启动</a> <span class="text-muted">wiseyao1219</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>修改:Program.cs[STAThread]staticvoidMain(){Mutexmutex=newMutex(true,"NewGuid123456",outboolisCreatedNew);if(!isCreatedNew){MessageBox.Show(Application.ProductName+"isrunning...");return;}Application.Ena</div> </li> <li><a href="/article/1835275356035182592.htm" title="C#中判断socket是否已断开的方法" target="_blank">C#中判断socket是否已断开的方法</a> <span class="text-muted">wiseyao1219</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>代码如下:Sockets=newSocket(..);if(s.Poll(-1,SelectMode.SelectRead)){intnRead=s.Receive();if(nRead==0){//socket连接已断开}}参考:C#中判断socket是否已断开的方法</div> </li> <li><a href="/article/1835231486190645248.htm" title="C#文件被占用的解决方案" target="_blank">C#文件被占用的解决方案</a> <span class="text-muted">花北城</span> <a class="tag" taget="_blank" href="/search/C%23%E9%A1%B9%E7%9B%AE/1.htm">C#项目</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E5%8D%A0%E7%94%A8/1.htm">文件占用</a> <div>问题打更新包时,提示文件被占用。System.IO.IOException:文件“D:\RS\RS_CCVI20111210.exe”正由另一进程使用,因此该进程无法访问该文件。在System.IO.__Error.WinIOError(Int32errorCode,StringmaybeFullPath)在System.IO.FileStream.Init(Stringpath,FileMode</div> </li> <li><a href="/article/1835210183991717888.htm" title="C#实现软件自动升级" target="_blank">C#实现软件自动升级</a> <span class="text-muted">BruceEditCode</span> <div>winform程序相对web程序而言,功能更强大,编程更方便,但软件更新却相当麻烦,要到客户端一台一台地升级,本文结合实际情况,通过软件实现自动升级,弥补了这一缺陷,有较好的参考价值。由于程序在运行时不能用新的版本覆盖自己,因此,我们将登录窗口单独做成一个可执行文件,用户登录时,从网上检测是否有新的主程序,如果有,则从后台下载并覆盖老的版本,用户输入正确的用户名和密码后,通过参数将必要的信息(如用</div> </li> <li><a href="/article/1835209301472407552.htm" title="C# 自动化" target="_blank">C# 自动化</a> <span class="text-muted">TineAine</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5/1.htm">代码片段</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%8A%A8%E5%8C%96/1.htm">自动化</a><a class="tag" taget="_blank" href="/search/%E6%A8%A1%E6%8B%9F%E6%93%8D%E4%BD%9C/1.htm">模拟操作</a> <div>实现的方法可能很笨,但是确实很好用usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Runtime.InteropServices;usingSystem.Text;usingSystem.Threading;usingSystem.Threading.Tasks;/******************</div> </li> <li><a href="/article/1835137152187461632.htm" title="技术周总结 09.09~09.15周日(C# WinForm WPF)" target="_blank">技术周总结 09.09~09.15周日(C# WinForm WPF)</a> <span class="text-muted">打破砂锅问到底007</span> <a class="tag" taget="_blank" href="/search/wpf/1.htm">wpf</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/WinForm/1.htm">WinForm</a> <div>文章目录一、09.09周一1.1)问题01:Windows桌面开发中,WPF和WinForm的区别和联系?联系:区别:二、09.12周四2.1)问题01:visualstudio的相关快捷键有哪些?通用快捷键编辑导航调试窗口管理2.2)问题02:publicpartialclassChoosePLReason:CommonBaseForm2.3)问题03:介绍WindowsForms中的Syste</div> </li> <li><a href="/article/1835117601345335296.htm" title="通过C# 裁剪PDF页面" target="_blank">通过C# 裁剪PDF页面</a> <span class="text-muted">Eiceblue</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/.NET/1.htm">.NET</a><a class="tag" taget="_blank" href="/search/PDF/1.htm">PDF</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/pdf/1.htm">pdf</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/visual/1.htm">visual</a><a class="tag" taget="_blank" href="/search/studio/1.htm">studio</a> <div>在处理PDF文档时,有时需要精确地裁剪页面以适应特定需求,比如去除广告、背景信息或者仅仅是为了简化文档内容。本文将指导如何使用免费.NET控件通过C#实现裁剪PDF页面。免费库FreeSpire.PDFfor.NET支持在.NET(C#,VB.NET,ASP.NET,.NETCore)程序中实现创建、操作、转换和打印PDF文档等操作。可以从以下链接下载产品包后手动添加引用,或者直接通过NuGet安</div> </li> <li><a href="/article/1835057092260622336.htm" title="【Unity基础】如何选择脚本编译方式Mono和IL2CPP?" target="_blank">【Unity基础】如何选择脚本编译方式Mono和IL2CPP?</a> <span class="text-muted">tealcwu</span> <a class="tag" taget="_blank" href="/search/Unity%E5%9F%BA%E7%A1%80/1.htm">Unity基础</a><a class="tag" taget="_blank" href="/search/unity/1.htm">unity</a><a class="tag" taget="_blank" href="/search/%E6%B8%B8%E6%88%8F%E5%BC%95%E6%93%8E/1.htm">游戏引擎</a> <div>Edit->ProjectSettings->Player在Unity中,ScriptingBackend决定了项目的脚本编译方式,即如何将C#代码转换为可执行代码。Unity提供了两种主要的ScriptingBackend选项:Mono和IL2CPP。它们之间的区别影响了项目的性能、平台支持、编译时间和调试体验。以下是两者的详细对比:1.Mono简介:Mono是Unity最早使用的脚本后端,基于</div> </li> <li><a href="/article/1835051793449578496.htm" title="C# Tuple、ValueTuple" target="_blank">C# Tuple、ValueTuple</a> <span class="text-muted">語衣</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/%E7%9F%A5%E8%AF%86%E8%A1%A5%E5%85%85/1.htm">知识补充</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>栏目总目录TupleTuple是C#4.0引入的一个新特性,主要用于存储一个固定数量的元素序列,且这些元素可以具有不同的类型。Tuple是一种轻量级的数据结构,非常适合用于临时存储数据,而无需定义完整的类或结构体。优点简便性:可以快速创建一个包含多个不同类型数据的对象,而无需定义新的类或结构体。灵活性:元素数量和类型在编译时确定,但可以在不同上下文中重复使用不同元素的Tuple。缺点性能:作为引用</div> </li> <li><a href="/article/1834933913856864256.htm" title="C# Linq语句用法大全以及Lambda表达式" target="_blank">C# Linq语句用法大全以及Lambda表达式</a> <span class="text-muted">一个小码码</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/linq/1.htm">linq</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a> <div>C#Linq语句用法大全以及Lambda表达式Linq:是一种用于数据查询和操作的语言集成查询(LanguageIntegratedQuery)技术。通过Linq,我们可以使用类似于SQL查询的方式来查询、筛选和操作各种类型的数据集合,包括数组、列表、集合、XML文档、数据库表等等。常见的有:LinqtoObjects:用于操作对象集合,例如数组、列表等。LinqtoXML:用于操作XML数据,支</div> </li> <li><a href="/article/1834931138385244160.htm" title="C#中的LInq语句" target="_blank">C#中的LInq语句</a> <span class="text-muted">weixin_30588907</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a> <div>语言集成查询(LINQ)是一组技术的名称,这些技术建立在将查询功能直接集成到C#语言(以及VisualBasic和可能的任何其他.NET语言)的基础上。借助于LINQ,查询现在已是高级语言构造,就如同类、方法、事件等等。对于编写查询的开发人员来说,LINQ最明显的“语言集成”部分是查询表达式。查询表达式是使用C#3.0中引入的声明性查询语法编写的。通过使用查询语法,您甚至可以使用最少的代码对数据源</div> </li> <li><a href="/article/1834923946097602560.htm" title="C#的linq语句" target="_blank">C#的linq语句</a> <span class="text-muted">木生火18624</span> <a class="tag" taget="_blank" href="/search/C%23%E5%BC%80%E5%8F%91/1.htm">C#开发</a> <div>/查询表达式必须以form子句开头,以select或者group子句结束,在这两个子句之间,可以使用///where、orderby、join、let和其他的from子句本章要点用列表在对象上执行传统查询扩展方法LINQ查询操作符平行LNQ表达式树本章源代码下载地址(wrox.com)打开网页www.wrox.com/go/procsharp,单击DownloadCode选项卡即可下载本章源代码。</div> </li> <li><a href="/article/1834922812595335168.htm" title="C# 多线程操作同一个文件,如何避免冲突" target="_blank">C# 多线程操作同一个文件,如何避免冲突</a> <span class="text-muted">FlYFlOWERANDLEAF</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1使用lock经测试,依然存在线程冲突privatestaticobjectlocker=newobject();……lock(locker){stringbText=File.ReadAllText(FPath);returnbText;}……lock(locker){File.WriteAllText(FPath,aContent);}2使用ReaderWriterLockSlim经测试,依然</div> </li> <li><a href="/article/1834911090987855872.htm" title="C#LINQ常用扩展语句" target="_blank">C#LINQ常用扩展语句</a> <span class="text-muted">月落.</span> <a class="tag" taget="_blank" href="/search/C%23/1.htm">C#</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/linq/1.htm">linq</a><a class="tag" taget="_blank" href="/search/solr/1.htm">solr</a> <div>在C#中,LINQ提供了许多扩展方法,这些方法定义在System.Linq命名空间中。以下是一些常用的LINQ扩展方法:Where-过滤数据集合,返回满足条件的元素。varfilteredItems=collection.Where(item=>item.SomeProperty>10);Select-从数据集合中选择数据或创建新的投影。varprojectedItems=collection.S</div> </li> <li><a href="/article/1834859789155397632.htm" title="source insight4.0中文乱码解决方法" target="_blank">source insight4.0中文乱码解决方法</a> <span class="text-muted">鹿屿二向箔</span> <a class="tag" taget="_blank" href="/search/c%E8%AF%AD%E8%A8%80/1.htm">c语言</a><a class="tag" taget="_blank" href="/search/stm32/1.htm">stm32</a><a class="tag" taget="_blank" href="/search/keil/1.htm">keil</a><a class="tag" taget="_blank" href="/search/mdk/1.htm">mdk</a> <div>Sourceinsight是强大、顺手的代码编辑器,它几乎支持所有的语言,包括:C,C++,C#,HTML等等,能够自动创建并维护它自己高性能的符号数据库,包括函数、全局变量、结构、类和工程源文件里定义的其它类型的符号,对于大工程的源码阅读非常方便。但是因为是国外软件,对中文支持不是很好,很多电脑安装使用都会出现注释乱码问题,很让人抓狂。网上很多人遇到类似的问题,也有很多解决方式,也有很多“终极解</div> </li> <li><a href="/article/1834786550047666176.htm" title="C#基础知识-.NET,变量,容量单位,数据类型" target="_blank">C#基础知识-.NET,变量,容量单位,数据类型</a> <span class="text-muted">yi碗汤园</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>目录1.NET简介2.变量1)定义2)声明3)赋值3.容量单位4.数据类型1)整形(整数)2)非整型(小数)3)非数值型本篇文章来分享一下C#的基础知识,主要讲述一下变量和数据类型的相关知识。1.NET简介.NETdonet是Microsoft新一代多语言的开发平台,用于构建和运行应用程序。Unity借助Mono实现跨平台,核心是.NETFramework框架。2.变量1)什么是变量变量是用来存储</div> </li> <li><a href="/article/1834760963690164224.htm" title="C# 在WPF中实现图表生成" target="_blank">C# 在WPF中实现图表生成</a> <span class="text-muted">A_nanda</span> <a class="tag" taget="_blank" href="/search/WPF%E8%B5%8F%E6%9E%90/1.htm">WPF赏析</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/wpf/1.htm">wpf</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>在现代应用程序中,数据可视化是一个重要的功能,它可以帮助用户更直观地理解数据。在C#WPF(WindowsPresentationFoundation)中,有多种方式可以生成图表。以下是五种常见的方法,每种方法都有其独特的优势和局限。1.使用System.Windows.Shapes命名空间代码示例:<RectangleWidth="50"Height="50"Fill="Blue"Canva</div> </li> <li><a href="/article/1834735120645451776.htm" title="C#中关闭窗口清除内容" target="_blank">C#中关闭窗口清除内容</a> <span class="text-muted">Vae_Mars</span> <a class="tag" taget="_blank" href="/search/AI%E5%AF%B9%E8%AF%9D%E4%B8%AD%E7%9A%84%E5%85%B6%E4%BB%96%E7%9F%A5%E8%AF%86/1.htm">AI对话中的其他知识</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a> <div>1.解释说明-窗口关闭时是可以执行函数的,可以做一部分事件处理-因为删除文件夹的方案不好做,所以改成清空文件夹内的内容2.程序示例publicMainWindow(){InitializeComponent();//检查窗口关闭this.Closing+=MainWindow_Closing;}//执行具体的方法privatevoidMainWindow_Closing(objectsender,</div> </li> <li><a href="/article/1834721624809631744.htm" title="C#中Invoke的用法()" target="_blank">C#中Invoke的用法()</a> <span class="text-muted">世界太过浮夸</span> <a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>转自:http://www.cnblogs.com/lsgsanxiao/p/5523282.htmlinvoke和begininvoke区别一直对invoke和begininvoke的使用和概念比较混乱,这两天看了些资料,对这两个的用法和原理有了些新的认识和理解。首先说下,invoke和begininvoke的使用有两种情况:control中的invoke、begininvoke。delegra</div> </li> <li><a href="/article/1834716705641820160.htm" title=".NET常见面试题汇总" target="_blank">.NET常见面试题汇总</a> <span class="text-muted">.Net Core 爱好者</span> <a class="tag" taget="_blank" href="/search/.net/1.htm">.net</a><a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a> <div>首先,汇总一共分为三部分:一是关于.NET技术的面试问题,二是关于.NET项目中的实际问题,三是历年出现过一些面试题汇总一、.NET技术面试问题请简述.NET中的装箱和拆箱。什么是泛型,以及它在.NET中的用途?请解释一下C#中的委托是什么,以及它们如何工作?什么是事件,如何使用它们?请解释一下C#中的特性(Attributes)及其应用场景。.NET中的异步编程模式有哪些?什么是LINQ,它在.</div> </li> <li><a href="/article/1834716450888183808.htm" title="c# net8调用vc写的dll" target="_blank">c# net8调用vc写的dll</a> <span class="text-muted">wiseyao1219</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/%E5%BC%80%E5%8F%91%E8%AF%AD%E8%A8%80/1.htm">开发语言</a><a class="tag" taget="_blank" href="/search/dll/1.htm">dll</a> <div>dll程序(vc,x86)头文件extern"C"int__declspec(dllexport)WINAPIadd(inta,intb);实现intWINAPIadd(inta,intb){returna+b;}c#/net8函数声明:[DllImport("dll/Dll1.dll",CallingConvention=CallingConvention.StdCall)]publicstat</div> </li> <li><a href="/article/1834716451433443328.htm" title="c# json使用" target="_blank">c# json使用</a> <span class="text-muted">wiseyao1219</span> <a class="tag" taget="_blank" href="/search/c%23/1.htm">c#</a><a class="tag" taget="_blank" href="/search/json/1.htm">json</a><a class="tag" taget="_blank" href="/search/%E5%89%8D%E7%AB%AF/1.htm">前端</a> <div>安装包用NuGet安装包:Newtonsoft.Json对象转为Json字符串publicclassPerson{publicstringName{get;set;}publicintAge{get;set;}}Personperson=newPerson{Name="JohnDoe",Age=30};stringjson2=JsonConvert.SerializeObject(person);</div> </li> <li><a href="/article/89.htm" title="java责任链模式" target="_blank">java责任链模式</a> <span class="text-muted">3213213333332132</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/%E8%B4%A3%E4%BB%BB%E9%93%BE%E6%A8%A1%E5%BC%8F/1.htm">责任链模式</a><a class="tag" taget="_blank" href="/search/%E6%9D%91%E6%B0%91%E5%91%8A%E5%8E%BF%E9%95%BF/1.htm">村民告县长</a> <div>责任链模式,通常就是一个请求从最低级开始往上层层的请求,当在某一层满足条件时,请求将被处理,当请求到最高层仍未满足时,则请求不会被处理。 就是一个请求在这个链条的责任范围内,会被相应的处理,如果超出链条的责任范围外,请求不会被相应的处理。 下面代码模拟这样的效果: 创建一个政府抽象类,方便所有的具体政府部门继承它。 package 责任链模式; /** * </div> </li> <li><a href="/article/216.htm" title="linux、mysql、nginx、tomcat 性能参数优化" target="_blank">linux、mysql、nginx、tomcat 性能参数优化</a> <span class="text-muted">ronin47</span> <div>一、linux 系统内核参数 /etc/sysctl.conf文件常用参数 net.core.netdev_max_backlog = 32768 #允许送到队列的数据包的最大数目 net.core.rmem_max = 8388608 #SOCKET读缓存区大小 net.core.wmem_max = 8388608 #SOCKET写缓存区大</div> </li> <li><a href="/article/343.htm" title="php命令行界面" target="_blank">php命令行界面</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/PHP/1.htm">PHP</a><a class="tag" taget="_blank" href="/search/cli/1.htm">cli</a> <div>常用选项 php -v php -i PHP安装的有关信息 php -h 访问帮助文件 php -m 列出编译到当前PHP安装的所有模块 执行一段代码 php -r 'echo "hello, world!";' php -r 'echo "Hello, World!\n";' php -r '$ts = filemtime("</div> </li> <li><a href="/article/470.htm" title="Filter&Session" target="_blank">Filter&Session</a> <span class="text-muted">171815164</span> <a class="tag" taget="_blank" href="/search/session/1.htm">session</a> <div>Filter HttpServletRequest requ = (HttpServletRequest) req; HttpSession session = requ.getSession(); if (session.getAttribute("admin") == null) { PrintWriter out = res.ge</div> </li> <li><a href="/article/597.htm" title="连接池与Spring,Hibernate结合" target="_blank">连接池与Spring,Hibernate结合</a> <span class="text-muted">g21121</span> <a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a> <div>        前几篇关于Java连接池的介绍都是基于Java应用的,而我们常用的场景是与Spring和ORM框架结合,下面就利用实例学习一下这方面的配置。         1.下载相关内容:     &nb</div> </li> <li><a href="/article/724.htm" title="[简单]mybatis判断数字类型" target="_blank">[简单]mybatis判断数字类型</a> <span class="text-muted">53873039oycg</span> <a class="tag" taget="_blank" href="/search/mybatis/1.htm">mybatis</a> <div>       昨天同事反馈mybatis保存不了int类型的属性,一直报错,错误信息如下:       Caused by: java.lang.NumberFormatException: For input string: "null" at sun.mis</div> </li> <li><a href="/article/851.htm" title="项目启动时或者启动后ava.lang.OutOfMemoryError: PermGen space" target="_blank">项目启动时或者启动后ava.lang.OutOfMemoryError: PermGen space</a> <span class="text-muted">程序员是怎么炼成的</span> <a class="tag" taget="_blank" href="/search/eclipse/1.htm">eclipse</a><a class="tag" taget="_blank" href="/search/jvm/1.htm">jvm</a><a class="tag" taget="_blank" href="/search/tomcat/1.htm">tomcat</a><a class="tag" taget="_blank" href="/search/catalina.sh/1.htm">catalina.sh</a><a class="tag" taget="_blank" href="/search/eclipse.ini/1.htm">eclipse.ini</a> <div>   在启动比较大的项目时,因为存在大量的jsp页面,所以在编译的时候会生成很多的.class文件,.class文件是都会被加载到jvm的方法区中,如果要加载的class文件很多,就会出现方法区溢出异常 java.lang.OutOfMemoryError: PermGen space.     解决办法是点击eclipse里的tomcat,在</div> </li> <li><a href="/article/978.htm" title="我的crm小结" target="_blank">我的crm小结</a> <span class="text-muted">aijuans</span> <a class="tag" taget="_blank" href="/search/crm/1.htm">crm</a> <div>各种原因吧,crm今天才完了。主要是接触了几个新技术: Struts2、poi、ibatis这几个都是以前的项目中用过的。 Jsf、tapestry是这次新接触的,都是界面层的框架,用起来也不难。思路和struts不太一样,传说比较简单方便。不过个人感觉还是struts用着顺手啊,当然springmvc也很顺手,不知道是因为习惯还是什么。jsf和tapestry应用的时候需要知道他们的标签、主</div> </li> <li><a href="/article/1105.htm" title="spring里配置使用hibernate的二级缓存几步" target="_blank">spring里配置使用hibernate的二级缓存几步</a> <span class="text-muted">antonyup_2006</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/Hibernate/1.htm">Hibernate</a><a class="tag" taget="_blank" href="/search/xml/1.htm">xml</a><a class="tag" taget="_blank" href="/search/cache/1.htm">cache</a> <div>.在spring的配置文件中 applicationContent.xml,hibernate部分加入 xml 代码 <prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop> <prop key="hi</div> </li> <li><a href="/article/1232.htm" title="JAVA基础面试题" target="_blank">JAVA基础面试题</a> <span class="text-muted">百合不是茶</span> <a class="tag" taget="_blank" href="/search/%E6%8A%BD%E8%B1%A1%E5%AE%9E%E7%8E%B0%E6%8E%A5%E5%8F%A3/1.htm">抽象实现接口</a><a class="tag" taget="_blank" href="/search/String%E7%B1%BB/1.htm">String类</a><a class="tag" taget="_blank" href="/search/%E6%8E%A5%E5%8F%A3%E7%BB%A7%E6%89%BF/1.htm">接口继承</a><a class="tag" taget="_blank" href="/search/%E6%8A%BD%E8%B1%A1%E7%B1%BB%E7%BB%A7%E6%89%BF%E5%AE%9E%E4%BD%93%E7%B1%BB/1.htm">抽象类继承实体类</a><a class="tag" taget="_blank" href="/search/%E8%87%AA%E5%AE%9A%E4%B9%89%E5%BC%82%E5%B8%B8/1.htm">自定义异常</a> <div>/*   * 栈(stack):主要保存基本类型(或者叫内置类型)(char、byte、short、   *int、long、 float、double、boolean)和对象的引用,数据可以共享,速度仅次于   * 寄存器(register),快于堆。堆(heap):用于存储对象。   */  &</div> </li> <li><a href="/article/1359.htm" title="让sqlmap文件 "继承" 起来" target="_blank">让sqlmap文件 "继承" 起来</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a><a class="tag" taget="_blank" href="/search/ibatis/1.htm">ibatis</a><a class="tag" taget="_blank" href="/search/sqlmap/1.htm">sqlmap</a> <div>        多个项目中使用ibatis , 和数据库表对应的 sqlmap文件(增删改查等基本语句),dao, pojo 都是由工具自动生成的, 现在将这些自动生成的文件放在一个单独的工程中,其它项目工程中通过jar包来引用 ,并通过"继承"为基础的sqlmap文件,dao,pojo 添加新的方法来满足项</div> </li> <li><a href="/article/1486.htm" title="精通Oracle10编程SQL(13)开发触发器" target="_blank">精通Oracle10编程SQL(13)开发触发器</a> <span class="text-muted">bijian1013</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/%E6%95%B0%E6%8D%AE%E5%BA%93/1.htm">数据库</a><a class="tag" taget="_blank" href="/search/plsql/1.htm">plsql</a> <div>/* *开发触发器 */ --得到日期是周几 select to_char(sysdate+4,'DY','nls_date_language=AMERICAN') from dual; select to_char(sysdate,'DY','nls_date_language=AMERICAN') from dual; --建立BEFORE语句触发器 CREATE O</div> </li> <li><a href="/article/1613.htm" title="【EhCache三】EhCache查询" target="_blank">【EhCache三】EhCache查询</a> <span class="text-muted">bit1129</span> <a class="tag" taget="_blank" href="/search/ehcache/1.htm">ehcache</a> <div>本文介绍EhCache查询缓存中数据,EhCache提供了类似Hibernate的查询API,可以按照给定的条件进行查询。   要对EhCache进行查询,需要在ehcache.xml中设定要查询的属性   数据准备 @Before public void setUp() { //加载EhCache配置文件 Inpu</div> </li> <li><a href="/article/1740.htm" title="CXF框架入门实例" target="_blank">CXF框架入门实例</a> <span class="text-muted">白糖_</span> <a class="tag" taget="_blank" href="/search/spring/1.htm">spring</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E6%A1%86%E6%9E%B6/1.htm">框架</a><a class="tag" taget="_blank" href="/search/webservice/1.htm">webservice</a><a class="tag" taget="_blank" href="/search/servlet/1.htm">servlet</a> <div>CXF是apache旗下的开源框架,由Celtix + XFire这两门经典的框架合成,是一套非常流行的web service框架。 它提供了JAX-WS的全面支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用,同时它能与spring进行完美结合。 在apache cxf官网提供</div> </li> <li><a href="/article/1867.htm" title="angular.equals" target="_blank">angular.equals</a> <span class="text-muted">boyitech</span> <a class="tag" taget="_blank" href="/search/AngularJS/1.htm">AngularJS</a><a class="tag" taget="_blank" href="/search/AngularJS+API/1.htm">AngularJS API</a><a class="tag" taget="_blank" href="/search/AnguarJS+%E4%B8%AD%E6%96%87API/1.htm">AnguarJS 中文API</a><a class="tag" taget="_blank" href="/search/angular.equals/1.htm">angular.equals</a> <div>angular.equals   描述: 比较两个值或者两个对象是不是 相等。还支持值的类型,正则表达式和数组的比较。   两个值或对象被认为是 相等的前提条件是以下的情况至少能满足一项: 两个值或者对象能通过=== (恒等) 的比较 两个值或者对象是同样类型,并且他们的属性都能通过angular</div> </li> <li><a href="/article/1994.htm" title="java-腾讯暑期实习生-输入一个数组A[1,2,...n],求输入B,使得数组B中的第i个数字B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]" target="_blank">java-腾讯暑期实习生-输入一个数组A[1,2,...n],求输入B,使得数组B中的第i个数字B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]</a> <span class="text-muted">bylijinnan</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>这道题的具体思路请参看 何海涛的微博:http://weibo.com/zhedahht import java.math.BigInteger; import java.util.Arrays; public class CreateBFromATencent { /** * 题目:输入一个数组A[1,2,...n],求输入B,使得数组B中的第i个数字B[i]=A</div> </li> <li><a href="/article/2121.htm" title="FastDFS 的安装和配置 修订版" target="_blank">FastDFS 的安装和配置 修订版</a> <span class="text-muted">Chen.H</span> <a class="tag" taget="_blank" href="/search/linux/1.htm">linux</a><a class="tag" taget="_blank" href="/search/fastDFS/1.htm">fastDFS</a><a class="tag" taget="_blank" href="/search/%E5%88%86%E5%B8%83%E5%BC%8F%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F/1.htm">分布式文件系统</a> <div>FastDFS Home:http://code.google.com/p/fastdfs/ 1. 安装 http://code.google.com/p/fastdfs/wiki/Setup http://hi.baidu.com/leolance/blog/item/3c273327978ae55f93580703.html 安装libevent (对libevent的版本要求为1.4.</div> </li> <li><a href="/article/2248.htm" title="[强人工智能]拓扑扫描与自适应构造器" target="_blank">[强人工智能]拓扑扫描与自适应构造器</a> <span class="text-muted">comsci</span> <a class="tag" taget="_blank" href="/search/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/1.htm">人工智能</a> <div>       当我们面对一个有限拓扑网络的时候,在对已知的拓扑结构进行分析之后,发现在连通点之后,还存在若干个子网络,且这些网络的结构是未知的,数据库中并未存在这些网络的拓扑结构数据....这个时候,我们该怎么办呢?       那么,现在我们必须设计新的模块和代码包来处理上面的问题</div> </li> <li><a href="/article/2375.htm" title="oracle merge into的用法" target="_blank">oracle merge into的用法</a> <span class="text-muted">daizj</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/sql/1.htm">sql</a><a class="tag" taget="_blank" href="/search/merget+into/1.htm">merget into</a> <div>Oracle中merge into的使用 http://blog.csdn.net/yuzhic/article/details/1896878 http://blog.csdn.net/macle2010/article/details/5980965 该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据. ORACLE 9i 中,使用此命令必须同时指定UPDATE 和INSE</div> </li> <li><a href="/article/2502.htm" title="不适合使用Hadoop的场景" target="_blank">不适合使用Hadoop的场景</a> <span class="text-muted">datamachine</span> <a class="tag" taget="_blank" href="/search/hadoop/1.htm">hadoop</a> <div>转自:http://dev.yesky.com/296/35381296.shtml。   Hadoop通常被认定是能够帮助你解决所有问题的唯一方案。 当人们提到“大数据”或是“数据分析”等相关问题的时候,会听到脱口而出的回答:Hadoop!  实际上Hadoop被设计和建造出来,是用来解决一系列特定问题的。对某些问题来说,Hadoop至多算是一个不好的选择,对另一些问题来说,选择Ha</div> </li> <li><a href="/article/2629.htm" title="YII findAll的用法" target="_blank">YII findAll的用法</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/yii/1.htm">yii</a> <div>看文档比较糊涂,其实挺简单的: $predictions=Prediction::model()->findAll("uid=:uid",array(":uid"=>10));   第一个参数是选择条件:”uid=10″。其中:uid是一个占位符,在后面的array(“:uid”=>10)对齐进行了赋值; 更完善的查询需要</div> </li> <li><a href="/article/2756.htm" title="vim 常用 NERDTree 快捷键" target="_blank">vim 常用 NERDTree 快捷键</a> <span class="text-muted">dcj3sjt126com</span> <a class="tag" taget="_blank" href="/search/vim/1.htm">vim</a> <div>下面给大家整理了一些vim NERDTree的常用快捷键了,这里几乎包括了所有的快捷键了,希望文章对各位会带来帮助。 切换工作台和目录 ctrl + w + h 光标 focus 左侧树形目录ctrl + w + l 光标 focus 右侧文件显示窗口ctrl + w + w 光标自动在左右侧窗口切换ctrl + w + r 移动当前窗口的布局位置 o 在已有窗口中打开文件、目录或书签,并跳</div> </li> <li><a href="/article/2883.htm" title="Java把目录下的文件打印出来" target="_blank">Java把目录下的文件打印出来</a> <span class="text-muted">蕃薯耀</span> <a class="tag" taget="_blank" href="/search/%E5%88%97%E5%87%BA%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E6%96%87%E4%BB%B6/1.htm">列出目录下的文件</a><a class="tag" taget="_blank" href="/search/%E6%96%87%E4%BB%B6%E5%A4%B9%E4%B8%8B%E9%9D%A2%E7%9A%84%E6%96%87%E4%BB%B6/1.htm">文件夹下面的文件</a><a class="tag" taget="_blank" href="/search/%E7%9B%AE%E5%BD%95%E4%B8%8B%E7%9A%84%E6%96%87%E4%BB%B6/1.htm">目录下的文件</a> <div>Java把目录下的文件打印出来 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 蕃薯耀 2015年7月11日 11:02:</div> </li> <li><a href="/article/3010.htm" title="linux远程桌面----VNCServer与rdesktop" target="_blank">linux远程桌面----VNCServer与rdesktop</a> <span class="text-muted">hanqunfeng</span> <a class="tag" taget="_blank" href="/search/Desktop/1.htm">Desktop</a> <div>windows远程桌面到linux,需要在linux上安装vncserver,并开启vnc服务,同时需要在windows下使用vnc-viewer访问Linux。vncserver同时支持linux远程桌面到linux。   linux远程桌面到windows,需要在linux上安装rdesktop,同时开启windows的远程桌面访问。   下面分别介绍,以windo</div> </li> <li><a href="/article/3137.htm" title="guava中的join和split功能" target="_blank">guava中的join和split功能</a> <span class="text-muted">jackyrong</span> <a class="tag" taget="_blank" href="/search/java/1.htm">java</a> <div>guava库中,包含了很好的join和split的功能,例子如下: 1) 将LIST转换为使用字符串连接的字符串    List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom"); </div> </li> <li><a href="/article/3264.htm" title="Web开发技术十年发展历程" target="_blank">Web开发技术十年发展历程</a> <span class="text-muted">lampcy</span> <a class="tag" taget="_blank" href="/search/android/1.htm">android</a><a class="tag" taget="_blank" href="/search/Web/1.htm">Web</a><a class="tag" taget="_blank" href="/search/%E6%B5%8F%E8%A7%88%E5%99%A8/1.htm">浏览器</a><a class="tag" taget="_blank" href="/search/html5/1.htm">html5</a> <div>回顾web开发技术这十年发展历程: Ajax 03年的时候我上六年级,那时候网吧刚在小县城的角落萌生。传奇,大话西游第一代网游一时风靡。我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一个小时我一直在,注,册,账,号。 彼时网吧用的512k的带宽,注册的时候,填了一堆信息,提交,页面跳转,嘣,”您填写的信息有误,请重填”。然后跳转回注册页面,以此循环。我现在时常想,如果当时a</div> </li> <li><a href="/article/3391.htm" title="架构师之mima-----------------mina的非NIO控制IOBuffer(说得比较好)" target="_blank">架构师之mima-----------------mina的非NIO控制IOBuffer(说得比较好)</a> <span class="text-muted">nannan408</span> <a class="tag" taget="_blank" href="/search/buffer/1.htm">buffer</a> <div>1.前言。   如题。 2.代码。   IoService IoService是一个接口,有两种实现:IoAcceptor和IoConnector;其中IoAcceptor是针对Server端的实现,IoConnector是针对Client端的实现;IoService的职责包括: 1、监听器管理 2、IoHandler 3、IoSession</div> </li> <li><a href="/article/3518.htm" title="ORA-00054:resource busy and acquire with NOWAIT specified" target="_blank">ORA-00054:resource busy and acquire with NOWAIT specified</a> <span class="text-muted">Everyday都不同</span> <a class="tag" taget="_blank" href="/search/oracle/1.htm">oracle</a><a class="tag" taget="_blank" href="/search/session/1.htm">session</a><a class="tag" taget="_blank" href="/search/Lock/1.htm">Lock</a> <div>[Oracle] 今天对一个数据量很大的表进行操作时,出现如题所示的异常。此时表明数据库的事务处于“忙”的状态,而且被lock了,所以必须先关闭占用的session。   step1,查看被lock的session:   select t2.username, t2.sid, t2.serial#, t2.logon_time from v$locked_obj</div> </li> <li><a href="/article/3645.htm" title="javascript学习笔记" target="_blank">javascript学习笔记</a> <span class="text-muted">tntxia</span> <a class="tag" taget="_blank" href="/search/JavaScript/1.htm">JavaScript</a> <div>  javascript里面有6种基本类型的值:number、string、boolean、object、function和undefined。number:就是数字值,包括整数、小数、NaN、正负无穷。string:字符串类型、单双引号引起来的内容。boolean:true、false object:表示所有的javascript对象,不用多说function:我们熟悉的方法,也就是</div> </li> <li><a href="/article/3772.htm" title="Java enum的用法详解" target="_blank">Java enum的用法详解</a> <span class="text-muted">xieke90</span> <a class="tag" taget="_blank" href="/search/enum/1.htm">enum</a><a class="tag" taget="_blank" href="/search/%E6%9E%9A%E4%B8%BE/1.htm">枚举</a> <div>Java中枚举实现的分析:     示例:  public static enum SEVERITY{ INFO,WARN,ERROR }     enum很像特殊的class,实际上enum声明定义的类型就是一个类。 而这些类都是类库中Enum类的子类      (java.l</div> </li> </ul> </div> </div> </div> <div> <div class="container"> <div class="indexes"> <strong>按字母分类:</strong> <a href="/tags/A/1.htm" target="_blank">A</a><a href="/tags/B/1.htm" target="_blank">B</a><a href="/tags/C/1.htm" target="_blank">C</a><a href="/tags/D/1.htm" target="_blank">D</a><a href="/tags/E/1.htm" target="_blank">E</a><a href="/tags/F/1.htm" target="_blank">F</a><a href="/tags/G/1.htm" target="_blank">G</a><a href="/tags/H/1.htm" target="_blank">H</a><a href="/tags/I/1.htm" target="_blank">I</a><a href="/tags/J/1.htm" target="_blank">J</a><a href="/tags/K/1.htm" target="_blank">K</a><a href="/tags/L/1.htm" target="_blank">L</a><a href="/tags/M/1.htm" target="_blank">M</a><a href="/tags/N/1.htm" target="_blank">N</a><a href="/tags/O/1.htm" target="_blank">O</a><a href="/tags/P/1.htm" target="_blank">P</a><a href="/tags/Q/1.htm" target="_blank">Q</a><a href="/tags/R/1.htm" target="_blank">R</a><a href="/tags/S/1.htm" target="_blank">S</a><a href="/tags/T/1.htm" target="_blank">T</a><a href="/tags/U/1.htm" target="_blank">U</a><a href="/tags/V/1.htm" target="_blank">V</a><a href="/tags/W/1.htm" target="_blank">W</a><a href="/tags/X/1.htm" target="_blank">X</a><a href="/tags/Y/1.htm" target="_blank">Y</a><a href="/tags/Z/1.htm" target="_blank">Z</a><a href="/tags/0/1.htm" target="_blank">其他</a> </div> </div> </div> <footer id="footer" class="mb30 mt30"> <div class="container"> <div class="footBglm"> <a target="_blank" href="/">首页</a> - <a target="_blank" href="/custom/about.htm">关于我们</a> - <a target="_blank" href="/search/Java/1.htm">站内搜索</a> - <a target="_blank" href="/sitemap.txt">Sitemap</a> - <a target="_blank" href="/custom/delete.htm">侵权投诉</a> </div> <div class="copyright">版权所有 IT知识库 CopyRight © 2000-2050 E-COM-NET.COM , All Rights Reserved. <!-- <a href="https://beian.miit.gov.cn/" rel="nofollow" target="_blank">京ICP备09083238号</a><br>--> </div> </div> </footer> <!-- 代码高亮 --> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shCore.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shLegacy.js"></script> <script type="text/javascript" src="/static/syntaxhighlighter/scripts/shAutoloader.js"></script> <link type="text/css" rel="stylesheet" href="/static/syntaxhighlighter/styles/shCoreDefault.css"/> <script type="text/javascript" src="/static/syntaxhighlighter/src/my_start_1.js"></script> </body> </html>