此模式有时无效(仅适用于第3个实例)。模式为^\s*flood\s{55}\s+\w+
我是正则表达式的新手,我正在尝试编写一个捕获以下所有条件的正则表达式:
Example 1: flood a)
Example 2: flood As respects
Example 3: flood USD100,000
(它采用表格格式,洪水与下一个词之间有很多空格)
答案 0 :(得分:0)
你的表情在说:
^\s*
字符串的开头可能有零个或多个空格字符
flood
后跟字符串flood
\s{55}
后面跟着55个空白字符
\s+\w+
后跟一个或多个空白字符,然后是一个或多个单词字符。
如果您想要最少数量的空白字符,比如至少30个字符,后跟一个或多个单词字符,那么您可以这样做:
^\s*flood\s{30,}\w+
答案 1 :(得分:0)
试试这个:
string input =
@" flood a)
flood As respects
flood USD100,000";
string pattern = @"^\s*flood\s+.+$";
MatchCollection matches = Regex.Matches(input, pattern, RegexOptions.Multiline);
答案 2 :(得分:0)
如果洪水和下一个单词之间有很多空格,则可以省略\s{55}
,这是一个与whitespace character匹配55次的量词。
由于^\s*flood\s+\w+
与单词字符匹配但不匹配空格或\w
中的任何一个,因此),
与class DemoHelp extends StatelessWidget {
@override
Widget build(BuildContext context) {
// TODO: implement build
return MaterialApp(
title: "Random App",
home: RandomWorldHome(),
);
}
}
class RandomWorldHome extends StatefulWidget {
@override
_RandomWorldHomeState createState() => new _RandomWorldHomeState();
}
class _RandomWorldHomeState extends State<RandomWorldHome> {
List<int> _arraySelectedRowStatus = List.filled(5, 1);
@override
Widget build(BuildContext context) {
return new Scaffold(
appBar: AppBar(
title: Text("Random Word"),
),
body: setupListView(),
);
}
Widget setupListView() {
final _arrayOfData = [
{"name": "Amit Patel", "address": "Junagadh"},
{"name": "Arjun Jain", "address": "Madhya Pradesh"},
{"name": "Ajay Shah", "address": "Limbadi"},
{"name": "Ankur Patel", "address": "Visanagar"},
{"name": "Soheb Ansari", "address": "Ahmedabad"}
];
return ListView.builder(
padding: new EdgeInsets.all(10.0),
itemCount: _arrayOfData.length,
itemBuilder: (context, i) {
return ListTile(
title: Text(_arrayOfData[i]["name"]),
subtitle: new Text(_arrayOfData[i]["address"]),
leading: new CircleAvatar(
backgroundColor: Colors.blue,
child: new Text(_arrayOfData[i]["name"][0])),
trailing: new Icon(
(_arraySelectedRowStatus[i] == 0
? Icons.favorite_border
: Icons.favorite),
color: (_arraySelectedRowStatus[i] == 0 ? null : Colors.red),
),
onTap: (){
setState(() {
_arraySelectedRowStatus[i] = _arraySelectedRowStatus[i] == 0 ? 1 : 0;
});
Scaffold.of(context).showSnackBar(new SnackBar(
content:
new Text("You are selecting at ${_arraySelectedRowStatus[i]}")));
},
);
},
);
}
}
的所有值都不匹配,因为{{1}}。
要匹配您的值,您可以使用character class并添加您允许匹配的字符:
或者,如果您想匹配任何字符,您可以使用点而不是字符类。
根据你的评论,你可能会使用积极的观察: