如何使用内联修改器而不是RegexOptions.Option
?
例如:
Regex MyRegex = new Regex(@"[a-z]+", RegexOptions.IgnoreCase);
Run Code Online (Sandbox Code Playgroud)
如何使用内联字符重写此内容i
?
为什么我不能将数组初始值设定项与隐式类型变量一起使用?
string[] words = { "apple", "strawberry", "grape" }; // legal
string[] words = new string[]{ "apple", "strawberry", "grape" }; // legal
var words = new []{ "apple", "strawberry", "grape" }; // legal
var words = new string[]{ "apple", "strawberry", "grape" }; // legal
var words = { "apple", "strawberry", "grape", "peach" }; // ILLEGAL
Run Code Online (Sandbox Code Playgroud)
这种限制是否存在技术原因?为什么不能像它那样推断出类型:
var number = 10;
var text = "Hello";
Run Code Online (Sandbox Code Playgroud)
编译器清楚地知道我想要做什么,它只是不允许它:
CS0820:无法将数组初始值设定项分配给隐式类型的本地
更新:我使用四种合法的数组声明方法编译了一个程序,它生成了相同的IL:http://pastebin.com/28JDAFbL
这只会增加我的困惑.并且"就像这样,因为规范说的如此"没什么帮助.为什么规格是这样的?这里的理由是什么?
有谁知道什么preg
的preg_match
,preg_grep
等代表什么?
我知道他们使用的是PCRE,它们是'Perl Compatible Regular Expressions'.
现在我的登录系统如下:
您如何评价以下措施的有效性以提高安全性?
X
隔一段时间更改密码,新密码不能是Y
以前的任何密码我不是很喜欢1和2,因为它会给用户带来不便.
当然,只有当攻击者破坏了db(例如:通过SQL注入)而不是应用程序所在的文件系统时,4和6才有效.
在Python中,可以做到:
d = {1 : 'Hello', 2 : 'World'}
Run Code Online (Sandbox Code Playgroud)
在C#中,它更详细:
Dictionary<int, string> d = new Dictionary<int, string>();
d.Add(1, 'Hello');
d.Add(2, 'World');
Run Code Online (Sandbox Code Playgroud)
我怎么能让这个更简洁?
我一直试图解析一个文件xml.etree.ElementTree
:
import xml.etree.ElementTree as ET
from xml.etree.ElementTree import ParseError
def analyze(xml):
it = ET.iterparse(file(xml))
count = 0
last = None
try:
for (ev, el) in it:
count += 1
last = el
except ParseError:
print("catastrophic failure")
print("last successful: {0}".format(last))
print('count: {0}'.format(count))
Run Code Online (Sandbox Code Playgroud)
这当然是我的代码的简化版本,但这足以打破我的程序.如果删除try-catch块,我会在某些文件中出现此错误:
Traceback (most recent call last):
File "<pyshell#22>", line 1, in <module>
from yparse import analyze; analyze('file.xml')
File "C:\Python27\yparse.py", line 10, in analyze
for (ev, el) in it:
File "C:\Python27\lib\xml\etree\ElementTree.py", line 1258, in next
self._parser.feed(data)
File "C:\Python27\lib\xml\etree\ElementTree.py", …
Run Code Online (Sandbox Code Playgroud) 我有这个片段:
$string = 'Hello, my name is Linda. I like Pepsi.';
$regex = '/name is (?<name>[^.]+)\..*?like (?<likes>[^.]+)/';
preg_match($regex, $string, $matches);
print_r($matches);
Run Code Online (Sandbox Code Playgroud)
这打印:
Array
(
[0] => name is Linda. I like Pepsi
[name] => Linda
[1] => Linda
[likes] => Pepsi
[2] => Pepsi
)
Run Code Online (Sandbox Code Playgroud)
我怎样才能让它返回:
Array
(
[name] => Linda
[likes] => Pepsi
)
Run Code Online (Sandbox Code Playgroud)
无需过滤结果数组:
foreach ($matches as $key => $value) {
if (is_int($key))
unset($matches[$key]);
}
Run Code Online (Sandbox Code Playgroud) 有没有可以解析文件流的Python XML解析器?我的XML文件太大,无法容纳在内存中,所以我需要解析流.
理想情况下,我不需要root权限来安装东西,因此lxml
不是一个很好的选择.
我一直在使用,xml.etree.ElementTree
但我确信它已经坏了.
我知道之前已经问过,但是尽管建议使用.equals()
而不是==
比较运算符,我发现它==
一直都有效:
String s1 = "Hello";
String s2 = "Hello";
System.out.println(s1 == s2); // true
Run Code Online (Sandbox Code Playgroud)
谁能给我一个==
操作员失败的例子?
搜索符号在编程中很常见,特别是当您不熟悉某种语言时.例如,我在Python中有一个关于运算符的问题::
,这是不可搜索的.寻找像这样的东西或Object []
(对象阵列)的人找不到他们想要的东西.
为什么搜索引擎似乎完全忽略了符号?他们就像其他人一样.我可以看出为什么从符号中提取语义与单词相比很难(例如:搜索引擎可以发现"查找","发现","找到"都是相关的,如果不是相同的单词),但是搜索它们真的很难吗?
我也可以看到为什么在日常使用中你想要忽略符号,但要明确地寻找某些东西会有多难(例如:"::"
会搜索::)