我正在尝试解析一个单词,该单词两侧都有空格或标点符号。
我试过这个:
fun main(args: Array<String>) {
val regex = "\bval\b".toRegex();
regex.matches("fn foo() { val x = 2;} x;").also { println(it) }
}
Run Code Online (Sandbox Code Playgroud)
但这打印出来是错误的。我在这里测试了正则表达式https://regex101.com/r/vNBefF/2并且它有效,与输入字符串匹配。
我究竟做错了什么?
我正在研究会员算法,我正在研究这个特殊问题,其中说明如下:
展示一种算法,给定任何常规语言L,确定L = L*
所以,我的第一个想法是,我们有L*是L的Kleene星并且确定L = L*,我们不能只是说因为L是常规的,我们知道L*是根据定义指出的常规语言系列在星光关闭下关闭.因此L总是等于L*?
我觉得肯定还有很多东西,可能还有我想念的东西.任何帮助,将不胜感激.再次感谢.
也许我错过了一些东西,但是这个常规表达有什么问题?
var str = "lorem ipsum 12345 dolor";
var x = /\d+/.exec(str);
var y = /\d*/.exec(str);
console.log(x); // will print 12345
console.log(y); // will print "" but why ?
Run Code Online (Sandbox Code Playgroud)
你能解释为什么/\d*/.exec(str);返回一个空字符串而不是"12345". *表示零个或多个匹配项.
以下正则表达式是否等效为真?为什么或者为什么不?
(ab)* u (aba)* = (ab u aba)*
*= Kleene明星
你=联盟(集合理论)
我试图证明RE
s(bs)*[(abb*a*)*ab]*aa(a?b) 哪里 s=b*a*ab
可以简化为
(a?b)*abaa(a?b),
但我所知道的所有一般转变,如(ab)*a=a(ba)*或(a*b)*a*=(a?b)*似乎没有效果.
所以问题是:
谢谢.
我了解原因和{a^n b^n | n >= 0}不正常的证明。
为什么{a ^ nb ^ n | n> = 0}是否不规则?
我的一项练习的解决方案是:{a^n a^n | n >= 0}定期进行。我如何证明这一论点?
现在我正在学习开玩笑来编写单元测试。我已经阅读了 jest 的部分文档和 github 上关于 jest 配置的一些代码,我发现可以像这样定义选项 moduleNameMapper:
"moduleNameMapper": {
"\\.(jpg|jpeg|png|gif)$": "<rootDir>/__mocks__/fileMock.js",
".*\\.(css|less|scss)$": "<rootDir>/__mocks__/styleMock.js"
}
Run Code Online (Sandbox Code Playgroud)
但我不明白\\配置中的“ ”是什么意思?
正则表达式中的两个反斜杠似乎无法匹配任何文件或目录。
我只是想知道这样的配置可以匹配像"aaa.jpg","src/images/bbb.jpg","src/less/style.config.less",等不?
我正在搜索一个正则表达式,我可以用它来检查用户输入是否包含指定列表中的特殊字符。
以下是我尝试编写的正则表达式不允许使用的特殊字符: ^[`~!@#$%^&*()_+={}\[\]|\\:;“’<,>.???]*$
我去了https://regex101.com/,我期待以下输入匹配,但不是为什么:
127 elmer road ??<>()
Run Code Online (Sandbox Code Playgroud)
所以在android java(但可以是任何)中,我编写了以下函数,但它也总是返回 true 。我如何过滤所有这些特殊字符。如果给定的字符串不匹配,我想要一个返回 true 的函数。
public boolean isValid( EditText et) {
String string = et.getText().toString();
boolean isValid = true;
final Pattern sPattern
= Pattern.compile("^[`~!@#$%^&*()_+={}\\[\\]|\\\\:;“’<,>.???]*$");
isValid= !sPattern.matcher(string).matches();
return isValid;
}
Run Code Online (Sandbox Code Playgroud)
更新:我也尝试了以下操作:
我有一些关于状态消除和术语的问题。
在上面的示例中,DFA 处于接受状态,必须以符号 0 开始并以 1 结束。
这是我的问题,我不知道如何将顶部和底部部分添加到单个表达式中。我也不完全确定如何进一步消除 q2 符号 1 。
会是 0(0*(0+1))1* 吗?
感谢任何可以提供帮助的人!
B = {1^k y | k >= 1, y in {0, 1}* and y contains at least k 1's }
Run Code Online (Sandbox Code Playgroud)
这种语言有规律吗?如果是这样,你如何证明它,你将如何用Python中的正则表达式来表示它?
这是为了上课,所以如果你能解释你的答案背后的原因和过程,我们将不胜感激.
我正在编写一些静态分析工具,并且一直试图避免进行全面的编译样式字符串解析,这让我想到了这个问题.
C#是常用语言吗?
为什么或者为什么不?
regular-language ×13
regex ×8
algorithm ×1
c# ×1
dfa ×1
fsm ×1
grammar ×1
javascript ×1
jestjs ×1
kotlin ×1
membership ×1