C中的Java matchesAt()等价物#

C中的Java matchesAt()等价物#,java,c#,.net,regex,Java,C#,.net,Regex,我已经发现了这个问题,但是在那里寻找的指定答案似乎不起作用 我能找到的所有方法似乎都表明lookingAt()方法从“region”的开头开始匹配(尽管还不清楚“region”是否与“string”同义) 我在Java和.NET中都有一组测试示例,但得到的结果不同 JAVA @测试 公共void TestRegex() { 字符串输入=”자\uD83E在Java中,您需要使用模式.COMMENTS标志来允许正则表达式中的注释和任意空格: String regex = "(?x). () [\uD

我已经发现了这个问题,但是在那里寻找的指定答案似乎不起作用

我能找到的所有方法似乎都表明
lookingAt()
方法从“region”的开头开始匹配(尽管还不清楚“region”是否与“string”同义)

我在Java和.NET中都有一组测试示例,但得到的结果不同

JAVA
@测试
公共void TestRegex()
{

字符串输入=”자\uD83E在Java中,您需要使用
模式.COMMENTS
标志来允许正则表达式中的注释和任意空格:

String regex = "(?x). () [\uD800-\uDFFF]";
Pattern pattern = Pattern.compile(regex);
您还可以在regex的开头使用
(?x)
,以获得相同的效果:

String regex = @"\A. () [\uD800-\uDFFF]";
现在
匹配
将显示Java代码的
true


现在,要使
.NET
regex等效于Java的
lookngAt()
,只需使用start-anchor:


请注意,您在输入字符串中使用的是锚点,而不是正则表达式。

Hmm…因此,如果没有锚点,我需要一个文本空格字符,就像在.NET中没有
RegexOptions.IgnorePatternWhitespace一样?是的。
Java
Pattern.COMMENTS
RegexOptions.IgnorePatternWhitespace>非常接近
不适用于
.NET
(除了Java标志也允许在正则表达式中使用注释)所以,当我把测试放在一起时,我看起来像是搞错了——我在原始代码中的正则表达式中有锚。但我也假设,因为正则表达式中有空格,Java会忽略它们,这就是我出错的地方。对,Java正则表达式不会忽略空格,除非你有
模式。注释
(?x)
在正则表达式的开头
String regex = @"\A. () [\uD800-\uDFFF]";