gpt4 book ai didi

java - 将正则表达式与 Kotlin 结合使用

转载 作者:行者123 更新时间:2023-11-30 02:13:31 40 4
gpt4 key购买 nike

根据 http://www.regexplanet.com/advanced/java/index.html ,我的正则表达式

\\uline\{[a-zA-Z\d]+\}|\\text(super|sub)script\{[0-9]+.[0-9]+\}

应该可以很好地检测例如1)\text上标{1.1}和2)\uline{名称}

此外,replaceFirst 按预期工作:12345\textsuperscript{1.1}6789 转到 123456789

我双反斜杠并将正则表达式添加到我的 Kotlin 代码中(在 IntelliJ Idea 中):

var stylingRegex = "\\\\uline\\{[a-zA-Z\\d]+\\}|\\\\text(super|sub)script    \\{[0-9]+.[0-9]+\\}"
var testString = "12345\\uline{james}678"
testString = testString.replaceFirst(Pattern.quote(stylingRegex), "")
println("testString: " + testString)

但是,打印出来的是初始化后的字符串,没有任何修改。

最佳答案

您不应引用正则表达式模式,并且应确保将正则表达式传递给replaceFirst:

testString = testString.replaceFirst(stylingRegex.toRegex(), "")

参见 online Kotlin demo:

var stylingRegex = """\\uline\{[a-zA-Z\d]+\}|\\text(super|sub)script\{[0-9]+\.[0-9]+\}"""
var testString = "12345\\uline{james}678"
testString = testString.replaceFirst(stylingRegex.toRegex(), "")
println("testString: " + testString)
// => testString: 12345678

请注意,在使用原始字符串文字(用 """..."""" 定义)时,不需要使用过多的反斜杠,其中 \ 符号表示用于创建正则表达式转义的文字反斜杠。

此外,要仅匹配 float ,您需要对模式的 [0-9]+.[0-9]+ 部分中的点进行转义。要匹配整数和 float ,请使用 [0-9]+(?:\.[0-9]+)?

关于java - 将正则表达式与 Kotlin 结合使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49361344/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com