相关疑难解决方法(0)

使用正则表达式匹配多行文本

我试图使用java匹配多行文本.当我使用PatternPattern.MULTILINE修饰符的类时,我能够匹配,但我无法使用(?m).

使用(?m)和使用相同的模式String.matches似乎不起作用.

我确信我错过了什么,但不知道是什么.我不太擅长正则表达式.

这是我试过的

String test = "User Comments: This is \t a\ta \n test \n\n message \n";

String pattern1 = "User Comments: (\\W)*(\\S)*";
Pattern p = Pattern.compile(pattern1, Pattern.MULTILINE);
System.out.println(p.matcher(test).find());  //true

String pattern2 = "(?m)User Comments: (\\W)*(\\S)*";
System.out.println(test.matches(pattern2));  //false - why?
Run Code Online (Sandbox Code Playgroud)

java regex

165
推荐指数
3
解决办法
19万
查看次数

在Scala中检查字符是否为ASCII字母(aZ)的优雅方法是什么?

我目前正在使用扫描仪和分析程序,需要一个接受ASCII字母字符的解析器 - 所以我不能使用char.isLetter.

我自己想出了两个解决方案.我不喜欢他们两个.

正则表达式

def letter = elem("ascii letter", _.toString.matches("""[a-zA-Z]"""))
Run Code Online (Sandbox Code Playgroud)

使用正则表达式来检查这么简单的事情似乎相当"过度".

范围检查

def letter = elem("ascii letter", c => ('A' <= c && c <= 'Z') || ('a' <= c && c <= 'z'))
Run Code Online (Sandbox Code Playgroud)

在我看来,这将是Java的发展方向.但它不是真的可读.

是否有一个更清洁,更像Scala的解决方案来解决这个问题?我并不担心性能,因为在这种情况下无关紧要.

ascii scala

7
推荐指数
1
解决办法
1万
查看次数

标签 统计

ascii ×1

java ×1

regex ×1

scala ×1