2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
नियमितव्यञ्जनेषु,? {0, 1} इत्यस्य समतुल्यं परिमाणं, 0 वा 1 वा, अथवा अन्येषां अर्थानां प्रतिनिधित्वार्थं विशेषवर्णरूपेण उपयोक्तुं शक्यते ।
?
उदाहरणं पश्यामः : १.
- @Test
- public void test() {
- Pattern pattern = Pattern.compile("a.*?");
- Matcher matcher = pattern.matcher("abcabc");
- if (matcher.matches()) {
- System.out.println(matcher.group());
- }
- }
निष्पादनस्य अनन्तरं उत्पादनम्: abcabc
किं न लघुतमः मेलः ? किमर्थं विफलम् अभवत् ?
अस्मिन् वस्तुतः अलोभपूर्णमेलनस्य नियमाः समाविष्टाः सन्ति- १.अलोभीमेलनस्य कृते अग्रिमनियमात् पूर्वं लघुतमः मार्गः मेलितः भवति यदि अग्रिमनियमः नास्ति तर्हि लोभीमेलनरूपेण संसाधितः भवति ।
अर्थात् यदि केवलं "क.*?"
सम्यक् प्रयोगं पश्यामः : १.
- @Test
- public void test() {
- Pattern pattern = Pattern.compile("(a.*?)(.*)");
- Matcher matcher = pattern.matcher("afcafc");
- if (matcher.matches()) {
- System.out.println(matcher.group(0));
- System.out.println(matcher.group(1));
- System.out.println(matcher.group(2));
- }
- }
निष्पादनस्य अनन्तरं उत्पादनम् : १.
- afcafc
- a
- fcafc
यथा भवान् पश्यति, प्रथमः ग्रहणसमूहः लघुतमं स्ट्रिंग् "a" गृह्णाति, द्वितीयः च ग्रहणसमूहः "fcafc" गृह्णाति ।
अन्ययोः परिस्थितियोः अवलोकनं कुर्मः ।
यदा ग्रहणसमूहे उपयुज्यते तदा ?: नियमितव्यञ्जनस्य पुरतः स्थाप्यते यत् मेलनं सूचयितुं किन्तु न ग्रहणं भवति, अर्थात् सङ्गतमूल्यानां एषः समूहः समूहविधिना प्राप्तुं न शक्यते
उदाहरणानि पश्यामः
- @Test
- public void test0() {
- Pattern pattern = Pattern.compile("\d{4}-(?:[a-z]+)");
- Matcher matcher = pattern.matcher("3214-opo");
- if (matcher.matches()) {
- System.out.println(matcher.group());
- System.out.println(matcher.group(1)); // 报错
- }
- }
group(1) इत्यस्य माध्यमेन ग्रहणं कुर्वन् त्रुटिः निवेदिता भविष्यति, अर्थात् तस्य मेलनं कर्तुं शक्यते परन्तु गृहीतुं न शक्यते । यदि ?: निष्कासितम् अस्ति तर्हि समूह(1) मार्गेण सामान्यतया गृहीतुं शक्यते ।
(?s) दक्षिणपार्श्वे एकपङ्क्तिविधानं चालू करोति, येन .
उदाहरणं पश्यामः : १.
- private static final String DEFAULT_VARIABLE_PATTERN = "((?s).*)";
-
-
- /**
- * 从输出结果可知,匹配到了换行符 'n'
- */
- @Test
- public void test4() {
- Pattern pattern = Pattern.compile(DEFAULT_VARIABLE_PATTERN);
- Matcher matcher = pattern.matcher("abcnsdf");
- if (matcher.matches()) {
- System.out.println(matcher.group());
- System.out.println(matcher.group(1));
- System.out.println(matcher.group(2)); // (?s) 不能作为捕获组,报错
- }
- }
ग्रहणकाले (?s) ग्रहणसमूहरूपेण गृहीतुं न शक्यते, अतः "((?s).*)" अधिकतया समूह(1) गृहीतुं शक्नोति, समूह(2) ग्रहणकाले च त्रुटिः निवेदिता भविष्यति
- @Test
- public void test5() {
- Pattern pattern = Pattern.compile("(.*)");
- Matcher matcher = pattern.matcher("abcnsdf");
- if (matcher.matches()) {
- System.out.println(matcher.group());
- System.out.println(matcher.group(1));
- }
- }
(?s) अपसारयित्वा, "abcnsdf" इत्यस्य मेलनं कर्तुं प्रयतध्वम् यतः नूतनपङ्क्तिवर्णः अस्ति, मेलनं सम्पन्नं कर्तुं न शक्यते, अतः किमपि आउटपुट् न भविष्यति ।