gpt4 book ai didi

flutter - 转义“Dart 中的正则表达式

转载 作者:行者123 更新时间:2023-12-03 03:12:27 27 4
gpt4 key购买 nike

我试图在 Dart 正则表达式中捕获符号。我的正则表达式如下所示:

  RegExp containsSymbolRegExp = RegExp(r"[-!$%^&*()_+|~=`{}\[\]:;'<>?,.\/]");

但是,我还需要让它捕获符号“
我不能把 "放在那里,因为它弄乱了字符串。任何想法如何做到这一点?
谢谢。

编辑:jamesdlin 的回答非常适合 Dart 。但它不适用于我的 flutter 应用程序,所以我认为它与 flutter 有关。这是我将其应用于的代码:
TextEditingController _passwordController = TextEditingController();
bool containsSymbol;

RegExp containsSymbolRegExp = RegExp(r"[-!$%^&*()_+|~=`{}#@\[\]:;'<>?,.\/"
'"'
"]");

void _handleChange(text) {
setState(() {
containsSymbol = containsSymbolRegExp.hasMatch(_passwordController.text);
});
print(containsSymbol); // always prints false for " ' \ but works for all other symbols
}

Widget _textField(controller, labelText) {
return Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(labelText, style: TextStyle(fontSize: 11)),
Container(
width: MediaQuery.of(context).size.width * 0.9,
height: 35,
child: TextField(
onChanged: _handleChange,
style: TextStyle(fontSize: 20),
keyboardType: TextInputType.text,
controller: _passwordController,
cursorColor: Colors.grey,
decoration: InputDecoration(
focusedBorder: UnderlineInputBorder(
borderSide: BorderSide(color: Colors.grey))),
),
),
],
);
}

最佳答案

您可以利用相邻字符串文字的字符串连接,并使用单引号字符串或使用带有 " 的非原始字符串。逃脱:

RegExp(
r"[-!$%^&*()_+|~=`{}\[\]:;'<>?,.\/"
'"'
"]");

或者,您始终可以使用具有更多转义的非原始字符串:

RegExp(
"[-!\$%^&*()_+|~=`{}\\[\\]:;'<>?,.\\/\"]");

虽然那更麻烦。

关于flutter - 转义“Dart 中的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58141263/

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