Tag: 正则表达式

SearchView不会在第二个点上调用onQueryTextChange

我的活动有SearchView,应该过滤查询。 我通过onQueryTextListener过滤它。 想法是禁用键入不允许字符,如点,逗号,斜杠等 – 只允许[AZ]这里是代码(我正在使用Kotlin,但它是可读的Java): var shouldQueryChangeBeInvoked = true override fun onCreate(savedInstanceState: Bundle?) { … searchField.setOnQueryTextListener(this) } override fun setSearchQuery(query: String) { shouldQueryChangeBeInvoked = false searchField.setQuery(query, false) shouldQueryChangeBeInvoked = true } override fun onQueryTextChange(newText: String?): Boolean { if (!shouldQueryChangeBeInvoked) { return false } val validQuery = validateQuery(newText) validQuery?.let { setSearchQuery(it) } return false } 例如,我输入“ABC”。 […]

正则表达式 – 匹配不是字符串的字

我试图区分单词和字符串。 我设法使字符串工作,但我不能完全弄清楚如何匹配不包含双引号的单词: 所以我想这匹配: test 但是这不应该匹配: "test" 这是我迄今为止: [^\"][a-zA-Z]*[^\"] 它仍然得到了测试,虽然它是由双引号包围。 Input: "\"this is a string\" word" Expected Output: word 有什么建议么?

groupValues只返回重复模式的最后一次出现

println(Regex("(A|B)+").matchEntire("AB")!!.groupValues) 打印[AB, B]但我希望结果是[AB, A, B] 。 这是行为吗? 有没有办法获得[AB, A, B] ?

将匹配Java方法声明的正则表达式

我需要一个匹配java方法声明的正则表达式。 我想出了一个匹配方法声明的方法,但是它要求方法的左括号与声明位于同一行。 如果你有任何改善我的正则表达式的建议,或者只是有一个更好的,那么请提交一个答案。 这是我的正则表达式: "\w+ +\w+ *\(.*\) *\{" 对于那些不知道java方法是什么样子的人,我会提供一个基本的方法: int foo() { } Java方法有几个可选的部分,可以添加,但这些是一个方法保证唯一的部分。 更新:我目前的正则表达式是"\w+ +\w+ *\([^\)]*\) *\{"以防止Mike和adkom描述的情况。

Regex使用Regex.fromLiteral()创建了什么内容?

我用Regex.fromLiteral(".*")创建了一个非常简单的match-all Regex。 根据文档 :“返回指定文字字符串的文字正则表达式”。 但是我真的不明白“为指定的文字字符串”应该是什么意思。 考虑这个例子: fun main(args: Array<String>) { val regex1 = ".*".toRegex() val regex2 = Regex.fromLiteral(".*") println("regex1 matches abc: " + regex1.matches("abc")) println("regex2 matches abc: " + regex2.matches("abc")) println("regex2 matches .* : " + regex2.matches(".*")) } 输出: regex1 matches abc: true regex2 matches abc: false regex2 matches .* : true 显然(和我的预期相反), Regex.fromLiteral()和String.toRegex()行为完全不同(我已经尝试了regex2.matches()几十个不同的参数 – […]

如何在文件内容替换队伍的变量中跳出反斜杠

例如,如果我需要替换一些字符串到%teamcity.agent.work.dir%\\nd_r\\bin\\isf 。 但是,如果变量teamcity.agent.work.dir是C:\BuildAgent\work\ ,它将删除所有反斜杠并将文本替换为C:BuildAgentwork\nd_r\bin\isf 。 如果我最初不知道它的价值,我该如何逃避变量中的所有反斜杠? \ Q%env.NDRIVE%\ E \ nd_r \ bin \ isf – 它不起作用。

如何添加Java正则表达式实现中缺少的功能?

我是Java新手。 作为一个.Net开发者,我非常习惯.Net中的Regex类。 Regex (正则表达式)的Java实现并不差,但缺少一些关键特性。 我想为Java创建自己的帮助类,但我想也许已经有一个可用的。 那么有没有免费的,易于使用的产品在Java正则表达式或我应该自己创建一个? 如果我要写自己的课,你认为我应该把它分享给别人来使用它? [编辑] 有人抱怨说,我没有用当前的Regex类来解决这个问题。 我会尽力澄清我的问题。 在.Net中,正则表达式的使用比在Java中更容易。 由于这两种语言都是面向对象的,而且在很多方面都非常相似,所以我期望在两种语言中使用正则表达式都有类似的经验。 不幸的是,事实并非如此。 这里有一些比较Java和C#的代码。 第一个是C#,第二个是Java: 在C#中: string source = "The colour of my bag matches the color of my shirt!"; string pattern = "colou?r"; foreach(Match match in Regex.Matches(source, pattern)) { Console.WriteLine(match.Value); } 在Java中: String source = "The colour of my bag matches the color of […]

在Kotlin中的正则表达式匹配

如何在字符串中匹配secret_code_data: xeno://soundcloud/?code=secret_code_data# 我试过了 val regex = Regex("""xeno://soundcloud/?code=(.*?)#""") field = regex.find(url)?.value ?: "" 没有运气。 我猜测 ? 在代码可能是问题之前,我应该以某种方式逃避它。 你能帮我吗?

RegEx,只显示彩色线条(从git diff输出)

我有一个字符串x ,看起来像这样。 前面带加号的行是彩色编码的。 diff –git js/js.tests/test/org/jetbrains/kotlin/js/test/JsLineNumberTestGenerated.java js/js.tests/test/org/jetbrains/kotlin/js/test/JsLineNumberTestGenerated.java index 55597bf..9115830 100644 — js/js.tests/test/org/jetbrains/kotlin/js/test/JsLineNumberTestGenerated.java +++ js/js.tests/test/org/jetbrains/kotlin/js/test/JsLineNumberTestGenerated.java @@ -38,0 +39,6 @@ public class JsLineNumberTestGenerated extends AbstractJsLineNumberTest { + @TestMetadata("chainedCall.kt") + public void testChainedCall() throws Exception { + String fileName = KotlinTestUtils.navigationMetadata("js/js.translator/testData/lineNumbers/chainedCall.kt"); + doTest(fileName); + } + @@ -92,0 +99,6 @@ public class JsLineNumberTestGenerated extends AbstractJsLineNumberTest { + @TestMetadata("longLiteral.kt") […]

正则表达式可以识别/ * … * /注释

我有一个字符串包含/*…*/笔记,我试图摆脱他们。 例如: Hello /* this is a note */ 所以基本上我试图找出一个正则表达式,可以找到一个/然后任何类型的字符序列,然后另一个/ 。 我试过这个: ("/+(\\w|\\W)*+/").toRegex() …但它不工作。