Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Регулярное выражение, парсинг числа (https://javascript.ru/forum/misc/43450-regulyarnoe-vyrazhenie-parsing-chisla.html)

egorea1999 05.12.2013 23:06

Регулярное выражение, парсинг числа
 
<tr id="transactionDetailsRow-56" class="itemInvoiceNumber">
                        <td><label id="transactionRowDate-56" class="transactionRowCell transactionRowDate">06/04/2013</label></td>
                        <td><label id="transactionRowTypeDetailName-56" class="transactionRowCell transactionRowTypeDetailName">Wallet Funding</label></td>
                        <td class="accountColumn"><label id="transactionRowAccount-56" class="transactionRowCell transactionRowAccount">rugger1_6@yahoo.com</label></td>
                        <td><label id="transactionRowCurrency-56" class="transactionRowCell transactionRowCurrency">$5.00</label></td>
                    </tr>
                                    <tr id="transactionDetailsRow-57" class="itemInvoiceNumber">
                        <td><label id="transactionRowDate-57" class="transactionRowCell transactionRowDate">05/30/2013</label></td>
                        <td><label id="transactionRowTypeDetailName-57" class="transactionRowCell transactionRowTypeDetailName">Product Purchase</label></td>
                        <td class="accountColumn"><label id="transactionRowAccount-57" class="transactionRowCell transactionRowAccount">rugger1_6@yahoo.com</label></td>
                        <td><label id="transactionRowCurrency-57" class="transactionRowCell transactionRowCurrency">($3.99)</label></td>
                    </tr>
                                    <tr id="transactionDetailsRow-58" class="itemInvoiceNumber">
                        <td><label id="transactionRowDate-58" class="transactionRowCell transactionRowDate">05/17/2013</label></td>
                        <td><label id="transactionRowTypeDetailName-58" class="transactionRowCell transactionRowTypeDetailName">Product Purchase</label></td>
                        <td class="accountColumn"><label id="transactionRowAccount-58" class="transactionRowCell transactionRowAccount">rugger1_6@yahoo.com</label></td>
                        <td><label id="transactionRowCurrency-58" class="transactionRowCell transactionRowCurrency">($0.99)</label></td>
                    </tr>
                                    <tr id="transactionDetailsRow-59" class="itemInvoiceNumber">
                        <td><label id="transactionRowDate-59" class="transactionRowCell transactionRowDate">05/14/2013</label></td>
                        <td><label id="transactionRowTypeDetailName-59" class="transactionRowCell transactionRowTypeDetailName">Product Purchase</label></td>
                        <td class="accountColumn"><label id="transactionRowAccount-59" class="transactionRowCell transactionRowAccount">rugger1_6@yahoo.com</label></td>
                        <td><label id="transactionRowCurrency-59" class="transactionRowCell transactionRowCurrency">($4.99)</label></td>
                    </tr>


мне нужно скопировать цифру отсюда:
<td><label id="transactionRowCurrency-59" class="transactionRowCell transactionRowCurrency">(
59 - цифра, которую нужно спарсить и только её!!!
Важно!!
нужно чтобы именно в конце была скобка- "(" , если в конце нету скобки - "(" , то не надо парсить это число
на пример:
<td><label id="transactionRowCurrency-56" class="transactionRowCell transactionRowCurrency">$ - не надо парсить число
<td><label id="transactionRowCurrency-59" class="transactionRowCell transactionRowCurrency">($ - надо парсить число!

заранее благодарю!

Maxmaxmaximus3 05.12.2013 23:47


egorea1999 06.12.2013 07:42

Цитата:

Сообщение от Maxmaxmaximus3 (Сообщение 284848)

что?
мне нужна регулярка

ksa 06.12.2013 09:26

Цитата:

Сообщение от egorea1999
нужно чтобы именно в конце была скобка- "(" , если в конце нету скобки - "(" , то не надо парсить это число
на пример:
<td><label id="transactionRowCurrency-56" class="transactionRowCell transactionRowCurrency">$ - не надо парсить число
<td><label id="transactionRowCurrency-59" class="transactionRowCell transactionRowCurrency">($ - надо парсить число!

Как вариант...

var str='<td><label id="transactionRowCurrency-59" class="transactionRowCell transactionRowCurrency">(';
alert(str.match(/(\d+)(?=[\s\S]+\($)/g)); 
str='<td><label id="transactionRowCurrency-56" class="transactionRowCell transactionRowCurrency">';
alert(str.match(/(\d+)(?=[\s\S]+\($)/g));

egorea1999 06.12.2013 15:20

не работает...странно

ksa 06.12.2013 15:23

Цитата:

Сообщение от egorea1999
не работает..

Что значит "не работает"? :blink:
В моем примере первый алерт выдает 59, а второй null... Ты его запускал?

egorea1999 06.12.2013 15:23

У меня получилась такая регулярка <td><label id="transactionRowCurrency-(.*?)" class="transactionRowCell transactionRowCurrency"> , но она парсит все числа со скобками и без...

egorea1999 06.12.2013 15:24

Цитата:

Сообщение от ksa (Сообщение 284954)
Что значит "не работает"? :blink:
В моем примере первый алерт выдает 59, а второй null... Ты его запускал?

запускал, на сайте работает, а в программе не ищет

ksa 06.12.2013 15:34

Цитата:

Сообщение от egorea1999
а в программе не ищет

Значит не с теми строками, что ты указал ранее, работает. Строки у тебя другие...

egorea1999 06.12.2013 15:36

Цитата:

Сообщение от ksa (Сообщение 284963)
Значит не с теми строками, что ты указал ранее, работает. Строки у тебя другие...

ну а.. так же работает...НО парсит все числа без скобки и со скобкой на конце

ksa 06.12.2013 15:39

egorea1999, ты сначала определись с какими строками ты все же работаешь... А потом можно будет подумать о регулярном выражении. :)

egorea1999 06.12.2013 19:17

Цитата:

Сообщение от ksa (Сообщение 284967)
egorea1999, ты сначала определись с какими строками ты все же работаешь... А потом можно будет подумать о регулярном выражении. :)

я работаю с html файлов в делфи

egorea1999 06.12.2013 19:41

помогите, пожалуйста.

egorea1999 07.12.2013 15:40

</td>
										<td class="productTitleGroup">
											<div class="ellipsisOuterWrapper">
												<div class="ellipsisInnerWrapper">
													<section class="productTitleSection">DC Universe&trade; Online Free to Play</section>
													<label class="smallLabel productPublisherSection">SONY ONLINE ENTERTAINMENT LLC</label>
												</div>
											</div>
										</td>
										<td class="productTypeSection">									 
											Game													
										</td>
										<td class="productPurchasedSection">											
											        				                        																																													<label class="purchaseDate">10/11/2013</label>
																					</td>
										<td class="productExpiresSection">
											                            				                            				<label class="expirationDate">--</label>
										</td>
									</tr>        																			
																	                            			                    					                    					                            			                            																													<tr>
										<td class="productImageSection">
											<input id="mediaItemId_4" class="mediaItemId" type="hidden" value="EP0017-NPEA00266_00" />
											<input id="mediaItemMediaType_4" class="mediaItemMediaType" type="hidden" value="ACCOUNT_SERVICE" />
																							<img id="productImage4" class="mediaListProductImage" src="https://apollo2.dl.playstation.net/cdn/EP0017/NPEA00266_00/vpeZ04ln3F7C3ftC48iwNqShOYfBpXJb.png" />
																					</td>
										<td class="productTitleGroup">
											<div class="ellipsisOuterWrapper">
												<div class="ellipsisInnerWrapper">
													<section class="productTitleSection">DC UNIVERSE&trade; ONLINE</section>
													<label class="smallLabel productPublisherSection">SONY ONLINE ENTERTAINMENT LLC</label>
												</div>
											</div>
										</td>
										<td class="productTypeSection">									 
											<label class='mediaType'>Game</label><label class='smallLabel typeNameSmallLabel'>Service</label>													
										</td>
										<td class="productPurchasedSection">											
																																												<label class="purchaseDate">10/11/2013</label>
																					</td>
										<td class="productExpiresSection">


а как это вытянуть?

ksa 07.12.2013 22:15

Цитата:

Сообщение от egorea1999
а как это вытянуть?

Как вариант...

var str;
var r;
r=/(?:class="productTitleSection">)([^<]+)/g;
str='<section class="productTitleSection">DC UNIVERSE&trade; ONLINE</section>';
alert(str.match(r)[0].match(/[^>]+$/)[0]);
str='<td class="productTypeSection">Game</td>'
r=/(?:class="productTypeSection">)([^<]+)/g;
alert(str.match(r)[0].match(/[^>]+$/)[0]);


Часовой пояс GMT +3, время: 17:45.